2013-02-15 59 views
0

所以我有一个运行java applet的javascript函数。IE - innerHtml错误Javascript

var d=document; 
i = d.createElement("object"); 
    i.setAttribute("codetype","application/x-java-applet"); 
    i.setAttribute("type","application/x-java-applet"); 
i.setAttribute("code","myclass.class"); 
i.setAttribute("archive","myapp.jar"); 
    i.setAttribute("cache_archive","myapp.jar"); 
i.setAttribute("height","1"); 
i.setAttribute("width","1"); 
i.setAttribute("id","cv1"); 
i.setAttribute("MAYSCRIPT","true"); 
i.innerHTML = '<param name="a" value= "' + a + '" /><param name="b" value= "' + b + '" /><param name="c" value="c"/><param name="d" value="' + d + '"/>'; 
d.body.appendChild(i); 

的问题是,IE提供了在该行出现未知错误“i.innerHTML ......”。我试着搜索如何解决这个问题,但所有的答案都与表和单元格有关。有人可以告诉我如何修改我的代码,以便代码与IE兼容。

+0

在这种情况下,您的变量“a”,“b”和“d”没有定义 – sdespont 2013-02-15 06:52:00

+0

只是示例。即表示错误在innerHTML开始的那一行 – user2009694 2013-02-15 06:55:01

+0

well ... d被定义并且是一个新创建的DOM节点;) – migg 2013-02-15 06:55:53

回答

0

在此代码:

i.innerHTML = '<param name="a" value= "' + a + '" /><param name="b" value= "' + b + '" /><param name="c" value="c"/><param name="d" value="' + d + '"/>'; 

什么是A,B,C?你宣布了​​吗?

+0

是的,它们只是例子。真正的错误始于innerHTML行 – user2009694 2013-02-15 06:55:24

0

ab没有定义,你正试图创建object元素(d)作为一个字符串值添加到最后param。我也建议在第一个i之前加上var,以免混淆DOM元素或其他变量。

+0

是的,它们只是例子。真正的错误开始于innerHTML行 – user2009694 2013-02-15 06:55:45

+0

然后,您应该提供真实代码... – migg 2013-02-15 06:56:14

+0

也许您应该尝试在innerHTML调用之前执行'd.body.appendChild(i)',使用您的真实代码 – migg 2013-02-15 06:58:19