jQuery如何禁用外部脚本

时间:2016-02-22 17:27:44

标签: javascript jquery html onclick

我已尝试过以下链接中列出的所有解决方案:jQuery/HTML - Disable OnClick但这些解决方案都不适用于我。

我试图阻止来自外部.js的onclick事件发射。 .js在这里http://x.instagramfollowbutton.com/follow.js - 可以在http://unminify.com/

进行统一

该脚本包含在我的网站上,其中包含以下内容:

(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src="//x.instagramfollowbutton.com/follow.js";s.parentNode.insertBefore(g,s);}(document,"script")); 

生成的HTML代码为:

<span class="ig-follow" data-id="*deleted*" data-handle="*deleted*" data-count="true" data-size="small" data-username="false"><div title="Follow @*deleted* on Instagram" class="IGF small"><div class="ig-background"><img class="ig-camera" src="//x.instagramfollowbutton.com/components/instagram/v2/img/ig-camera.png" height="16" width="16"><span class="ig-text">Follow</span></div><div class="ig-count" id="c"><i></i><u></u><a>217</a></div></div></span>

如何阻止外部脚本的onclick事件被触发?

同样,我尝试了以下链接中列出的所有解决方案:jQuery/HTML - Disable OnClick但这些解决方案都不适用于我。

1 个答案:

答案 0 :(得分:0)

Instagram的点击处理程序似乎非常贪心。请尝试使用.stopImmediatePropagation()。请注意,IE支持为9+。

破碎:https://jsfiddle.net/jmarikle/4Loukhm6/
修正:https://jsfiddle.net/jmarikle/4Loukhm6/1/

在此之前从未听说过.stopImmediatePropagation(),但这篇文章似乎有一个很好的探索:https://codeplanet.io/preventdefault-vs-stoppropagation-vs-stopimmediatepropagation/

(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src="//x.instagramfollowbutton.com/follow.js";s.parentNode.insertBefore(g,s);}(document,"script"));

document.querySelector('.ig-follow').addEventListener('click', function(event){
  event.stopImmediatePropagation();
});
<span class="ig-follow" data-id="*deleted*" data-handle="*deleted*" data-count="true" data-size="small" data-username="false"><div title="Follow @*deleted* on Instagram" class="IGF small"><div class="ig-background"><img class="ig-camera" src="//x.instagramfollowbutton.com/components/instagram/v2/img/ig-camera.png" height="16" width="16"><span class="ig-text">Follow</span></div><div class="ig-count" id="c"><i></i><u></u><a>217</a></div></div></span>