丢失整个页面运行javascript的DOM
这个问题继续从这个问题:
读取url并输出新的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
。
页面加载完成后,您无法使用document.write
。
您应该使用jQuery DOM操作。
当文档关闭(加载后)时,对document.write()
任何调用都会隐式调用document.open()
( docs )。 这导致当前文档被完全清除以准备新的文档内容。
要操作元素的内容,请使用DOM操作(如innerHTML
或appendChild
或使用jQuery的等效方法(因为您的代码显示已经加载了jQuery)。