在新的dashcode模板的load函数中添加document.write会导致JS的其余部分无法生成

时间:2016-01-17 10:47:41

标签: javascript html dashcode

我在dashcode中为safari启动了一个新的自定义模板(“此模板创建了一个空白的Web应用程序,可以自定义。”)。它会自动生成main.js中的函数加载,该函数从index.html中的正文调用:

function load() {
    dashcode.setupParts();
}

我在函数之后添加了一些JS代码,当我运行时,它似乎作为HEAD的一部分执行。我还在index.html的主体中添加了一个onclick事件:

<body onload="load()";>
<input type="button" onclick="sayHello()" value="Say Hello" />
</body>

我跑的时候也拿到了按钮。

每当我向函数load添加一个document.write调用时(在显示按钮之前它应该只在加载时执行)我运行时不会生成任何其他内容。换句话说,只要负载变为:

function load() {
    dashcode.setupParts();
    document.write("LOADING");
}

我在函数显示后添加的javascript都没有。此外,我在身体中添加的onclick按钮也没有出现。

有人对此行为有解释吗?

1 个答案:

答案 0 :(得分:0)

在页面加载后调用document.write()将覆盖当前页面 - javascript,html,所有内容 - 这就是为什么它一般都是如此皱眉。查看DOM方法或innerHTML操作替代方案。