javascript - 如何停止加载某些 javascript 文件?

标签 javascript html css

我的 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 值。或者您可以根据需要将其设置为 truefalse。 另请注意,您的脚本标记中的源值必须封装在 "

之间

关于javascript - 如何停止加载某些 javascript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28407418/

相关文章:

html - 如何使用 CSS 在 div 中选择带有文本的跨度?

c# - 标签客户端的设置值

javascript - 我正在使用 bootstrap 创建幻灯片,但包含的第二个 div 比幻灯片 div 长

javascript - 如何在 vuetify 弹出模式上放置要使用输入元素(v-select)固定的下拉项?

html - 将动画社交媒体图标的笔改编成产品

html - 水平 SWF 提供空白

html - 如何使我的背景图像适合整个屏幕 CSS/HTML

javascript - 我有两个浏览器并排打开同一个域。我想将一个网格的选定行拖到另一个浏览器。可能吗?

javascript - JQuery 调整大小函数奇怪的行为

javascript - 从 Outlook 加载项读取扩展属性