【问题标题】:calling id from applet object throws js error in IE从小程序对象调用 id 会在 IE 中引发 js 错误
【发布时间】:2012-04-10 11:49:41
【问题描述】:

当从 JS 调用 applet id 时出现 Object doesn't support this property or method 错误。

请检查代码...

<!--[if !IE]> Firefox and others will use outer object -->
    <object
        classid     = "java:com.mypack.myclass.ABCClass.class"
        type        = "application/x-java-applet"
        height      = "200"
        width       = "480"
        id          = "myappletId">
        <!-- Konqueror browser needs the following param -->
        <param name="cache_archive" value="a.jar, b.jar, c.jar" />
        <param name="codebase" value="applets/" />
        <param name="OnMouseLeftClickJS" value="showModal()">
        <!--<![endif]-->
        <!-- MSIE (Microsoft Internet Explorer) will use inner object -->
        <object 
            classid     = "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
            codebase    = "http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab"
            height      = "200"
            width       = "480"
            id          = "myappletId">
            <param name="code" value="com.mypack.myclass.ABCClass" />
            <param name="cache_archive" value="a.jar, b.jar, c.jar" />
            <param name="OnMouseLeftClickJS" value="showModal()">
            <param name="codebase" value="applets/" />
            <strong>No Java Support</strong>
        </object>
        <!--[if !IE]> close outer object -->
    </object>
<!--<![endif]-->

现在,在我的 showModal() js 函数中,

var myId = document.getElementById("myappletId"); //At this point I am getting the object data.

我在我的模态窗口中执行了一些操作,这是一个 jquery 模态窗口,其中有一个按钮。当我点击它时,我正在调用一个函数,比如 xyz()。

function xyz() {
    var myId = document.getElementById("myappletId"); 
    //At this point myId is getting empty.
}

这仅在 IE 浏览器中发生。我在IE8中测试过。 在 Firefox 和 chrome 中运行良好。

我没有浏览我的页面,在查看源代码时我可以看到我的对象标签。

请帮帮我。

提前谢谢...

【问题讨论】:

  • 尝试使用从applet info. page. 链接的deployJava.js,它是Java 插件供应商提供和支持的脚本。它还将避开整个内部/外部并发症。

标签: java javascript object applet


【解决方案1】:

在你的 cmets 你有

<!-- MSIE (Microsoft Internet Explorer) will use inner object -->

使用document.getElementById('myappletId').getElementById('innerApplet') 怎么样? 为内部小程序使用唯一 id 是个好主意,也许您的解决方案会起作用。

【讨论】:

  • 实际上 myappletId 仅指内部小程序。这意味着根据 IE 或 Firefox 的浏览器,它仅根据指定的注释引用一个 id。只是从上面的代码中提醒一下,我的第一个电话工作完美。
【解决方案2】:

感谢你们的努力,错误出在我的代码中。当我打开一个模态窗口时,对象标签的可见性隐藏在后面。即使我在关闭模式窗口后使其可见,此 IE 也无法识别它。奇怪但真实......

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2015-09-13
    • 2014-12-11
    • 1970-01-01
    相关资源
    最近更新 更多