为了账号安全,请及时绑定邮箱和手机立即绑定

如何用js阻止后续的javascript标签的载入?

如何用js阻止后续的javascript标签的载入?

holdtom 2019-04-07 09:38:10
假设默认的htmlhead内容如下,我希望在head内的第一句加入我的script内容,实现后面的html、js、css内容都不再加载。我开始感觉根本不可能实现,因为浏览器是先加载当前的html内容,之后在逐步加载js文件。但有家公司(云适配yunshipei.com)已经实现了这样的功能,让我感觉很离奇?研究它的js代码两天也没有结果,有没有高手帮忙看看,帮我解惑??!!云适配这样做是为了让所有适合pc访问的网站,通过加入一行他的js代码,就变成了适合手机访问的网站,我通过iphonesafriwebinspecter看了,同一个页面在手机上访问,确实内容已经改变了,没有在加载原有多余的js和css。//这句script就是后加入的,通过加入这句影响后面的所有的js和css的载入。sitetitle....
查看完整描述

2 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

看了一下,我认为大致是这样的:
注意到它listen了DOMContentLoaded(可在代码中搜索DOMContentLoaded),也就是当DOM树加载完成,外联的CSS和JS还没载入的时候,它的代码开始执行大清洗。
大清洗的时候,它把原先的script标签给删掉了。可以在代码中搜索buildOriginalDOM函数。buildOriginalDOM函数里,注意到call了t.html.disable(n.headContent)、t.html.disable(n.bodyContent),里面的disable方法就是在调用之处的前面一点点的位置定义的,干的事情也就是清洗掉原先的script标签。
于是它就重新建立了清洗完以后的DOM树,再继续加载页面。
只是随便扫了一眼代码,不是很确定,也很可能不是这样的。晚上有时间再仔细看看。
膜拜云适配的学长们啊。
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 1156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信