无论如何让document.write工作而不删除整个页面?

时间:2013-12-12 22:19:27

标签: javascript jquery html

我编写了一个脚本来解析文件,获取菜单和子菜单名称并写出菜单。我想把这个菜单的html放到页面上。 innerHTML可以正常工作,但问题是我有一个额外的脚本需要在菜单上执行才能使它正常工作。我的脚本完美地使菜单的HTML,但它不适用于辅助脚本。我的猜测是因为innerHTML直接执行到DOM。我希望我用脚本创建的html字符串实际显示在源代码中。

http://pastebin.com/QK1hzsKF

脚本我需要与

一起运行它
    <script src=""></script>
    <script>
        $(function() {
            cbpHorizontalMenu.init();
        });
    </script>

我将我的脚本输出放在另一个页面中,它完美无缺。所以我很确定它的innerHTML是问题所在。

Document.write只删除整个页面。无论如何,我可以直接在div中插入html,就像document.write一样?

我之所以这样做,而不仅仅是做像php这样的事情是因为正如你所注意到的,我正在尝试在CMS(Confluence)中制作功能性的非静态菜单。

由于

1 个答案:

答案 0 :(得分:0)

您可以设置某些内容的innerHTML,或者为您使用的页面insertAdjacentHTML添加内容。例如:

body = document.getElementById("body");
body.innerHTML = "foo"; //this is what is inside of "body"
body.insertAdjacentHTML('beforeend', "bar");

然后,body的内容将为foobar

以下链接提供了更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML

<强>更新 如果您只使用insertAdjacentHTML,则可以产生beforeend之类的效果。您可以使用body.innerHTML += "foobar"