2 回答
TA贡献1812条经验 获得超5个赞
您应该只.innerHTML在要添加的内容是 HTML 字符串时使用。但是,在您的情况下,您有一个HTMLIFrameElement对象,因此.innerHTML在这种情况下不能使用。目前,Javascript 正在隐式调用.toString()由 返回的元素对象newAdUnit(),这会导致[object HTMLIFrameElement].
相反,当你想将一个节点元素添加到另一个元素时,你可以.appendChild()像这样使用:
<div id="test"></div>
<script>
function newAdUnit(size) {
var iframe = document.createElement('iframe');
iframe.onload = function() {
iframe = iframe.contentWindow.document;
var html = '<body>This is a test. The size is ' + size + '</body>';
iframe.open();
iframe.write(html);
iframe.close();
};
return iframe;
}
document.getElementById("test").appendChild(newAdUnit(10));
</script>
TA贡献1802条经验 获得超5个赞
如果您在当前操作中使用JQuery,将会非常容易。下面的代码显示了如何
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
function newAdUnit(obj) {
var iframe = document.createElement('iframe');
iframe.onload = function() {
iframe = iframe.contentWindow.document;
var html = '<body>This is a test</body>';
iframe.open();
iframe.write(html);
iframe.close();
};
$(obj).append(iframe);
}
newAdUnit($('#test'));
});
</script>
</head>
<body>
<div id="test">
</div>
</body>
</html>
添加回答
举报