这个问题继续从这个问题出发:
Read url and output new javascript src
我的最新代码是:
$(document).ready(function () {
var oScript = document.createElement('script');
oScript.type = 'text/javascript';
oScript.src = 'converter.js';
// most browsers
oScript.onload = function () {
$('#converter #form').load(renderConverter());
}
// IE
oScript.onreadystatechange = function () {
if (this.readyState == 'complete') {
$('#converter #form').load(renderConverter());
}
}
document.body.appendChild(oScript);
});
问题出在.load(renderConverter());
上。这样做,它删除整个DOM并打印renderConverter();要求打印。
函数renderConverter();
使用以下命令打印html:
window.document.write(html);
我改为:
document.write(html)
但它做同样的事情。
如何强制它只在div中打印我已经运行了回调? div为#converter #form
。
答案 0 :(得分:3)
页面加载完成后,您无法使用document.write
。
您应该使用jQuery DOM操作。
答案 1 :(得分:1)
当文档关闭(加载后)时,对document.write()
的任何调用都会隐式调用document.open()
(docs)。这会导致当前文档被完全删除以准备新的文档内容。
要操纵元素的内容,请使用诸如innerHTML
或appendChild
之类的DOM操作,或使用jQuery的等效方法(因为您的代码显示已经加载了jQuery)。