我的 HTML 页面中包含一些第三方 javascript。 它在我的网页上添加了一些共享按钮,并且被称为喜欢
<script src=http://something/something.js></script>
但有时我根本不想加载这个 javascript。它可以在服务器端解决,在某些情况下,这会阻止上述行出现在网页上。但是由于技术原因,根本不可能从 HTML 中删除此标签,无论是通过服务器端(如 PHP)还是通过 javascript(例如,仅在需要时使用 document.write 将标签放在那里)。我只需要在 javascript 中解决这个问题,如果满足条件,我需要阻止脚本标记,这意味着该标记始终存在于 HTML 中。
是否有可能阻止加载上面提到的 something.js URL?因此,例如,我会在它之前或之后执行一些其他的 javascript。我以为这样可以,但似乎行不通:
<script>
(function(){
var scripts=document.getElementsByTagName('script');
for (var i=0; i<scripts.length; i++)
if (scripts[i].src && scripts[i].src=='http://something...')
scripts[i].parentNode.removeChild(scripts[i]);
})();
</script>
<script src=http://something/something.js></script>
这不起作用,因为调用脚本时,它看不到另一个 <script>
在那一刻在下面标记。如果我将脚本放在下面,它会检测到具有 src 属性的脚本,但是删除该元素为时已晚,因为它已经执行(并将共享按钮元素粘贴到网页)。
有没有其他方法可以停止加载第三方脚本?谢谢
编辑:更新了第三方 javascript 由于某些内部原因每次都需要在 HTML 中的事实(尽管我不同意这一点,但我对此无能为力)。
最佳答案
一个简单的解决方案可能是:
<script>
if(yourcondition){
document.write('<script src=\"http://something/something.js\" type=\"text/javascript\"><\/script>');
}
else{
document.write('<script src=\"http://something/OTHER.js\" type=\"text/javascript\"><\/script>');
}
</script>
yourcondition
可以是存储在 cookie 或本地存储中的 bool 值。或者您可以根据需要将其设置为 true
或 false
。
另请注意,您的脚本标记中的源值必须封装在 "
关于javascript - 如何停止加载某些 javascript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407418/