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

functiontest(){varscript=document.createElement('script');script.src='js/write.js';va... 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内容 则会弹窗!
展开
 我来答
6rl
2013-05-20 · TA获得超过704个赞
知道小有建树答主
回答量:580
采纳率:66%
帮助的人:370万
展开全部

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();
cmoooo
2013-05-20 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:663万
展开全部
原来 document.write(‘XX’)还有这么多说法,原来一直以为它与document.body.innerHTML = 'XX';等效呢!

6rl网友的引用分析应该是正确的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式