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

来源:互联网 发布:township无限绿钞mac 编辑:程序博客网 时间:2024/05/17 01:58

问题代码:

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();

0 0