欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js document.write

shiping1 的头像
如果在页面onload事件后执行document.write()将会把整个文档清除掉,所以要想不清除文档只能在onload事件触发之前执行,document.write加载js文件会有阻塞页面的加载的问题,当然要要看你具体的业务需求。


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

2013-05-19 22:10 boy203 | 分类:JavaScript | 浏览256次
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内容 则会弹窗!
 
 
2013-05-20 09:40 提问者采纳

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();
提问者评价
谢谢 受教
评论|00
按默认排序|按时间排序

其他1条回答

2013-05-20 12:14cmoooo|十级
原来 document.write(‘XX’)还有这么多说法,原来一直以为它与document.body.innerHTML = 'XX';等效呢!

6rl网友的引用分析应该是正确的。
来自 http://zhidao.baidu.com/link?url=iKVOw3AEPA8RBNcGotx21wcemwSb3BYbOzKBHji0OCeiTGW5Nu62vTQ4-YqbQ2OQim7jh3eRlMVZTIUxIkj2EK
普通分类: