从applet对象调用id会在IE中引发js错误

时间:2012-04-10 11:49:42

标签: java javascript object applet

从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。

我没有导航我的页面和浏览源我可以看到我的对象标记。

请帮帮我。

提前致谢...

2 个答案:

答案 0 :(得分:0)

在你的评论中你有

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

如何使用document.getElementById('myappletId').getElementById('innerApplet')? 对内部applet使用唯一id可能是个好主意,也许你的解决方案可行。

答案 1 :(得分:0)

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