29天前2020-10-27 16:40:36 |    抢沙发  79 
今天在写一个公共JS方法,需要引入第三方的js内容,测试和很多直接向dom中添加元素结果都不能正常执行第三方的js于是找到了document。writeln,虽然可以执行了,但是发现原来的dom都被删除替换了。无语,百度了一下网上给出的方法都是乱七八糟,基本无效,经过探索发现一个很简单有效的方法,具体看正文。

js

思路其实很简单,就是先直接获取全部原来的dom,然后追加上新的内容,最后重新加载资源。

代码:

document.writeln(document.body.innerHTML+"新的代码");
这里简单说下原因吧!

原因是我们写的代码是在页面全部加载完成以后才去执行的代码,所以这个时候原来的文档流已经关闭了,doucment.write()函数会自动调用document.open()函数创建一个新的文档流,并写入新的内容,再通过浏览器展现,这样就会覆盖原来的内容。

解决这个问题的思路有两个,第一个就是在原来的文档流关闭之前就执行,第二个就是重新执行的时候先获取原来的内容再附加新的内容,很显然,我的解决方案是使用的第二种。

好了先到这里吧,先码代码。至于第一种怎么实现,有思路了就好实现了。

发表评论

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享