document.write和DOM元素.AppendChild(文本)之间的Javascript差异
我想嵌入并显示一个flash文件。它在document.write中运行良好,但当我尝试使用AppendChild(文本)时,它不会显示flash,而是显示纯文本。改为使用什么DOM方法document.write和DOM元素.AppendChild(文本)之间的Javascript差异,javascript,dom,Javascript,Dom,我想嵌入并显示一个flash文件。它在document.write中运行良好,但当我尝试使用AppendChild(文本)时,它不会显示flash,而是显示纯文本。改为使用什么DOM方法 <html> <head> <script> function addText(text,elementId){ if (document.createTextNode){ var mytextNode=document.createText
<html>
<head>
<script>
function addText(text,elementId){
if (document.createTextNode){
var mytextNode=document.createTextNode(text)
document.getElementById(elementId).appendChild(mytextNode)
}
}
</script>
</head>
<body>
<div id="test">
</div>
<script>
addText("<embed height='100' width='100' type='application/x-shockwave-flash' allowscriptaccess='always' wmode='transparent' quality='high' swliveconnect='true' name='test' id='test' src='test.swf'>",'test');
</script>
</body></html>
函数addText(text,elementId){
if(document.createTextNode){
var mytextNode=document.createTextNode(文本)
document.getElementById(elementId).appendChild(mytextNode)
}
}
添加文本(“,”测试“);
因为您正在创建文本节点,而不是序列化HTML
您可以将函数更改为
function addHTML(html, elementId) {
if (document.createElement) {
var holder = document.createElement('div');
holder.innerHTML = html;
var target = document.getElementById(elementId);
while (holder.hasChildNodes()) {
target.appendChild(holder.firstChild);
}
}
}
乍一看,这样一种方法常常显得不必要的嘈杂和毫无价值,但它与HTML的自然语法进行了更理智的集成。如果您希望能够将HTML直接写入文档中,您可能更喜欢使用jQuery这样的框架,它允许以下语法:
$("<embed src='…'/>")
$(“”)
但是,如果您只是为了嵌入Flash而这样做,请使用。您是想使用
.innerHTML
?我想您需要的是document.createElement()。这可能有助于两个答案都是好的,我认为这是因为您的分数较少;)哈哈,这是一个有趣的原因。我会给@alex一个+1来帮助保持平衡P非常感谢,很不幸,一个人不能检查两个好答案。
$("<embed src='…'/>")