2011-01-27 59 views
2

我的問題只發生在Safari上。 IE,FF,Chrome和Opera都完美無缺。我加入了一個對象到DOM(完全相同的方式,YouTube確實它,這取決於ActiveX或NPAPI),所以之後我決定寫入對象類型我通過它添加到DOM:Safari的javascript與document.write的困境

document.write(MyObject)

在頭部的部分,以便從身體調用的js函數可以訪問它。它適用於除Safari之外的所有內容。我可以讓Safari工作的唯一方法是在document.write之後添加一個警報!我甚至嘗試過setTimeout,但它有效,一次失敗10.

+0

不要使用`document.write`它的可怕。 – Raynos 2011-01-28 12:29:22

+0

是的,我設法找到一個不錯的解決方案。 – Orca 2011-01-28 13:13:13

回答

1

Document.write在主體本身中無法正常工作,而document.body.appendChild添加對象標籤不起作用。

所以我所做的就是

var objectContainer = createElement("div"); 
objectContainer.innerHTML = "<object blah blah> <\/object>"; //<--notice the escaping of/
document.body.appendChild(objectContainer); 

而現在它的工作原理無處不在。

1

你有沒有考慮過使用document.body.appendChild(MyObject)