它是一个简单的html
代码,我不知道为什么不工作!
html
文件包含iframe标记,内容为id
脚本创建一个元素并尝试将其附加到iframe
它不起作用,我不知道为什么它的工作(见代码评论)!
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<iframe id="s1" src="ifsrc.html"></iframe>
<script>
var soal = document.createElement("a");
var soaltext = document.createTextNode("text");
var soalat = document.createAttribute("class");
soalat.value = "class ";
var soalid = document.createAttribute("id");
soalid.value = "attid";
soal.setAttributeNode(soalat);
soal.setAttributeNode(soalid);
soal.appendChild(soaltext);
//document.body.appendChild(soal); its work!
var iFrame = document.getElementById("s1");
var iFrameBody;
iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
iFrameBody.appendChild(soal); // its not work!
</script>
</body>
</html>
ifsrc.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
sample text
</body>
</html>
答案 0 :(得分:1)
它的工作!
<script>
var soal = document.createElement("a");
var soaltext = document.createTextNode("tgggext");
soal.appendChild(soaltext);
alert("ad");
var iFrame = document.getElementById("s1");
var iFrameBody;
iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
iFrameBody.appendChild(soal);
</script>
但它不起作用!!!
<script>
var soal = document.createElement("a");
var soaltext = document.createTextNode("tgggext");
soal.appendChild(soaltext);
var iFrame = document.getElementById("s1");
var iFrameBody;
iFrameBody = iFrame.contentDocument.getElementsByTagName("body")[0];
iFrameBody.appendChild(soal);
</script>
最后我找到了我的问题。关于准备活动 警报很少花费时间,并且足以让iframe完成加载并准备就绪 我使用此代码而不是上面。
$(document).ready(function(){
$('#s1').ready(function(){
$('#s1').contents().find('body').html("<a>Hey, i`ve changed conten!</a>");
});
});
并且其工作正常,因为就绪事件等待iframe加载完成。