2013-02-15 45 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