您的位置:首页 > Web前端 > JavaScript

动态调用包含document.write的js文件,动态调用外部js文件时,文件中alert起作用 document.write不起作用

2016-10-28 11:32 441 查看
问题代码:

function test(){
var script=document.createElement('script');
script.src='js/write.js';
var dd=document.getElementById('dd');
dd.appendChild(script);
}
通过test函数调用write.js文件 内容主要是document.write('******************'),页面并无内容输出
如果write.js里面是alert内容 则会弹窗!


document.write()方法可以用在两个方面:页面载入过程中用实时脚本创建页面内容,以及用延时脚本创建本窗口或新窗口的内容。该方法需要一个字符串参数,它是写到窗口或框架中的HTML内容。这些字符串参数可以是变量或值为字符串的表达式,写入的内容常常包括HTML标记语言。

  记住,在载入页面后,浏览器输出流自动关闭。在此之后,任何一个对当前页面进行操作的document.write()方法将打开—个新的输出流,它将清除当前页面内容(包括源文档的任何变量或值)。因此,假如希望用脚本生成的HTML替换当前页面,就必须把HTML内容连接起来赋给一个变量,使用一个document.write()方法完成写操作。不必清除文档并打开一个新数据流,一个document.write()调用就可完成所有的操作。

  关于document.write()方法还有一点要说明的是它的相关方法document.close()。脚本向窗口(不管是本窗口或其他窗口)写完内容后,必须关闭输出流。在延时脚本的最后一个document.write()方法后面,必须确保含有document.close()方法,不这样做就不能显示图像和表单。并且,任何后面调用的document.write()方法只会把内容追加到页面后,而不会清除现有内容来写入新值。

现在是页面已经加载进来了,所以我认为点击后,加载进来的js,执行document.write,那么文本的输出浏览器不处理,而不是像加载时输出在当前元素里面。

解决代码

那个write.js可以这样改:

function test2(){
var dd=document.getElementById('dd');
dd.innerHTML = dd.innerHTML + '******************';
alert('ccc');
}
test2();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: