如何让头部加载的javascript ,取消加载

如何让头部加载的javascript ,取消加载

问题描述:

如何让头部加载的javascript ,取消加载,就是头部加载了一个javascript ,但是我想在后面的页面可以写一段代码,否前面加载的JS给取消掉。让其不加载。我也知道直接删除掉最快,但是因为程序的限制问题。想在后面加段代码,让其取消加载。

这个没办法
因为<script>加载是同步的,只有页面头部的javascript加载执行完之后,在页面后面的代码才能执行,也就无法阻止页面头部的javascript加载了。

除非改成异步加载javascript

<head>
<script type="text/javascript">
$(function(){
    loadJS();
});
function loadJS() {
    $.getScript("url.js");
}
</script>
</head>
<body>

<script type="text/javascript">
loadJS=function(){};//取消加载
</script>
</body>

搞不了,只能浏览器控制,加载到了取消不了。。所以你的js得放到body最后,yahoo的前端优化有提到。

如果js依据某些条件加载,直接动态向head中增加script标签加载不行吗。。?干嘛直接放head里面

这个是没法取消的,只要浏览器执行,到javascript就会去加载js,即使你后来通过dom将javascript节点移除,被加载过的js也不会取消。
如果要选择性的加载可以借助一些框架使用异步加载,或者不使用框架,当你决定要加载某一个js是通过dom动态添加一个javascript节点,将src指向你要
加载的js文件,也可以

楼上正解,既然不让删除,你可以试着控制js文件的路径指向啊,通过其他方式控制js文件的加载。比如楼上说的通过其他的js代码动态加载你要控制的js。
我觉得这个方法可能。

一楼的说法很对,正常情况下的确不会不加载书写在head部分的js文件;所以我们就要想个办法绕过页面初始化时的加载绕过w3c的标准化加载。

为什么不直接删除呢?我觉得你应该考虑一下,去使用删除,即使程序限制了,不然向楼上说的,基本难以办到。

如果后台是java写的,可以使用java后台变量,或者C标签等方法进行控制,
如:

 <c:if  test="${testGroup != ''}">
            <script type="text/javascript" src="test.js"></script>

</c:if>