丢失整个页面运行javascript的DOM

时间:2012-06-07 15:14:11

标签: javascript jquery dom

这个问题继续从这个问题出发:

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

2 个答案:

答案 0 :(得分:3)

页面加载完成后,您无法使用document.write

您应该使用jQuery DOM操作。

答案 1 :(得分:1)

当文档关闭(加载后)时,对document.write()的任何调用都会隐式调用document.open()docs)。这会导致当前文档被完全删除以准备新的文档内容。

要操纵元素的内容,请使用诸如innerHTMLappendChild之类的DOM操作,或使用jQuery的等效方法(因为您的代码显示已经加载了jQuery)。