【问题标题】:Hiding a java applet with jquery? Possible?用jquery隐藏一个java小程序?可能的?
【发布时间】:2010-02-15 18:21:59
【问题描述】:

我正在努力寻找一种使用 jquery 隐藏 java applet () 的方法。

我有一个链接可以打开一个简单的 ajax fancybox (http://fancybox.net) 问题是它总是出现在实际 java 小程序的“后面”。

有没有办法“隐藏”小程序甚至卸载它?我可以在关闭fancybox后重新加载它(基本上是要求用户确认)。

【问题讨论】:

    标签: jquery applet


    【解决方案1】:

    你可以移除它的 DOM 对象,或者将它的 CSS 属性设置为隐藏。

    jQuery("#applet").remove();
    

    或

    jQuery("#applet").hide();
    

    你也可以kill the applet:

     <script>
     document.MyApplet.killApplet();
     </script>
    
     public void killApplet() 
     {
        AccessController.doPrivileged(new PrivilegedAction() 
       {
    
            public Void run() {
                // kill the JVM
                System.exit(0);
                return null;
            }
        });
     }
    

    但是,这会停止小程序,并在 IE6 中引发 JS 错误

    您还可以将小程序大小设置为 (1,1),并在完成后将其设置回来。

    jQuery("#applet").height(1).width(1);
    

    【讨论】:

    • 好的,.hide() 有效。但是当我输入“显示”时,它并没有显示出来
    • 我有: 然后 $("#myapplet").hide() 有效,但 $("#myapplet").show() 无效。
    • Flash 也有这个问题,你把窗口模式设置为透明。不知道您是否可以使用 Java Applets 做到这一点。
    • mmmh ... 有没有办法告诉 jquery '改变' applet src ?可以解决问题
    • jQuery("#applet").attr("src", "null");
    【解决方案2】:

    我做的是 $('applet').addClass('hide');

    .hide {
      position: absolute;
      left: -100vw;
    }
    

    做 $('applet').removeClass('hide');当你想要它回来时。

    所有其他选项将强制重新启动您的小程序。

    【讨论】:

      【解决方案3】:

      试试这样的:

      var save=$('#applet').clone();
      $('#applet').html('');
      

      当你需要它时

      $('#applet').html(save.html());
      save=null; //to free this bit of memory
      

      未测试,但我希望它可以工作 ;)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多