2017-03-02 4 views
0

Ich habe gerade ein seltsames Problem mit einer externen Javascript-Datei getroffen. Es funktioniert perfekt in Edge und Chrome, aber nicht in Firefox (51.0.1).Externes Javascript funktioniert nicht in Firefox

Ich habe eine Reihe von Skripten an der Unterseite des Körpers von der Seite, wie diese

<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> 

Die adblocker.js Datei nicht ausgeführt. Ich habe versucht, eine Warnung als erste Zeile der JS-Datei hinzuzufügen, und die Warnung wird nie angezeigt. Ich habe die Konsole im Browser überprüft und das zeigt, dass die Datei nicht geladen wird.

Wenn ich

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

mit

<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> 

ersetzen es funktioniert perfekt.

Ich habe versucht, js/adblocker.js, /js/adblocker.js und mydomain.com/js/adblocker.js und das macht keinen Unterschied. Ich habe auch überprüft, dass die Datei tatsächlich hochgeladen wurde. Ich muss etwas Dummes tun, aber was?

+2

Haben Sie eine adblocker Erweiterung in Firefox installiert haben, das 'ad' im Namen des externen Skripts zu erfassen und es blockiert? – Joe

+0

Geben Sie diesem Mann eine Goldmedaille! Du hast es in einem, Joe. Ich habe die Datei umbenannt und es funktionierte sofort. Es gibt ein bisschen Doppelprüfung, um absolut sicher zu sein, aber ich denke, du hast es. Ironisch wirklich, da der ganze Zweck von adblocker.js darin bestand, auf die Anwesenheit eines Adblockers zu reagieren. Danke vielmals. – TrapezeArtist

Antwort

0

Als Joe richtig vorgeschlagen, die Adblock Plus Erweiterung der adblocker.js Datei wurde blockiert. Das Ändern des Dateinamens in blocker.js hat das Problem gelöst.

Ich muss sagen, dass ich denke, dies ist eine mächtige grobe Art der Filterung von Werbung, da es so viele unschuldige Wege geben muss, dass eine Datei "ad" im Namen haben könnte. Ich werde in Zukunft darauf achten, wenn mein Firefox etwas Unerwartetes tut.

+0

Es muss sicherlich einen besseren Weg geben, aber so scheint es jeder zu tun. Ich habe eine Verlängerung Websites zu verhindern, dass unerwünschte Pop-ups öffnen (einige Websites verwalten die eingebaute Funktion überspringen) und ich erhalte eine „Nicht-Anzeigen blockieren“ Warnung von Zeit zu Zeit (zusammen mit einem Bündel von Anzeigen, natürlich, da ich bin sie nicht blockieren). –

0

Versuchen Sie, Ihren JavaScript-Code zwischen diesen Codes (function($) { // your code here })(jQuery); in JavaScript-Datei zu setzen. Es funktioniert mit mir.

Verwandte Themen