2011-01-27 85 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)