外部Javascript在Firefox中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外部Javascript在Firefox中不起作用相关的知识,希望对你有一定的参考价值。

我刚刚用外部javascript文件遇到了一个奇怪的问题。它适用于Edge和Chrome,但不适用于Firefox(51.0.1)。

我在页面正文的底部有许多脚本,就像这样

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="js/adblocker.js"></script>
<script>
$(document).ready(function() {
    $('.dir_hotel').keyup(function(event) {
        if (event.keyCode == 13) {
            this.form.submit();
            return false;
         }
    });
});
</script>
<?php if ($mobile_browser > 0) { ?>
<script>
/* MOBILE COLLAPSE MENU */
(function($) {
  $.fn.collapsable = function(options) {
    // iterate and reformat each matched element
    return this.each(function() {
      // cache this:
      var obj = $(this);
      var tree = obj.next('.nav');
      obj.click(function(){
        if( obj.is(':visible') ){tree.toggle();}
      });
    });
  };
})(jQuery);

$(document).ready(function(){
    $('.slide-trigger').collapsable();
    $(".slide-trigger").click(function(){
        $('.slide-trigger').html($('.slide-trigger').text() == 'Collapse MENU' ? 'MENU' : 'Collapse MENU');
    });
});
</script>
<?php }?>
</body>

adblocker.js文件无法运行。我已经尝试添加警报作为.js文件的第一行,警报永远不会出现。我在浏览器中检查了控制台,显示文件未加载。

如果我更换

<script src="js/adblocker.js"></script>

<script>
window.onload=function(){
var clientHeight = document.getElementById('travins').clientHeight;
if (clientHeight < 20) {
        var node = document.getElementById("insnote");
        node.innerHTML = "<a href='https://clkuk.tradedoubler.com/click?p=18211&a=1906311&g=232597' target='_blank'>Columbus Direct Travel Insurance</a>";
}
var clientHeight = document.getElementById('flights').clientHeight;
if (clientHeight < 50) {
        var node = document.getElementById("flightnote");
        node.innerHTML = "<a href='http://www.kqzyfj.com/click-7782323-11015988-1440520708000' target='_blank'>Skyscanner</a>";
}
var clientHeight = document.getElementById('carhire').clientHeight;
if (clientHeight < 20) {
        var node = document.getElementById("hirenote");
        node.innerHTML = "<a href='http://www.zestcarrental.com/click.php?adm=1018&adt=14' target='_blank'>Zest Car Rental</a>";
}
var clientHeight = document.getElementById('parking').clientHeight;
if (clientHeight < 20) {
        var node = document.getElementById("parknote");
        node.innerHTML = "<a href='https://clkuk.tradedoubler.com/click?p=20642&a=1906311&g=20842820' target='_blank'>Purple Parking</a>";
}
var clientHeight = document.getElementById('brittany').clientHeight;
if (clientHeight < 20) {
        var node = document.getElementById("ferrynote");
        node.innerHTML = "<a href='http://being.successfultogether.co.uk/click.asp?ref=731409&site=6792&type=b3&bnb=3' target='_blank'>Brittany Ferries</a>";
}
};
</script>

它完美地运作。

我已经尝试过js / adblocker.js,/ js / adblocker.js和mydomain.com/js/adblocker.js,这没什么区别。我还仔细检查过该文件是否实际上传了。我必须做一些愚蠢的事,但是什么呢?

答案

正如Joe正确建议的那样,Adblock Plus扩展程序阻止了adblocker.js文件。将文件名更改为blocker.js已解决了该问题。

我不得不说,我认为这是一种过滤广告的粗暴方式,因为必须有这么多无辜的方式,文件可能在名称中有“广告”。每当我的Firefox出现意想不到的事情时,我都会关注这个问题。

另一答案

尝试将JavaScript代码放在JavaScript文件中的代码 (function($) { // your code here })(jQuery); 之间。它适合我。

以上是关于外部Javascript在Firefox中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 正则表达式(负)后视在 Firefox 中不起作用

javascript keydown在chrome和firefox中不起作用[关闭]

JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

Javascript 音频在 Firefox 中不起作用(x-unknown/unknown)

Stripe Checkout 在 Firefox 中不起作用

动画/关键帧在 Firefox 中不起作用(通过 JavaScript 启动 CSS 动画)