我刚刚遇到一个外部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,这没什么区别。我还仔细检查过该文件是否实际上传了。我必须做一些愚蠢的事,但是什么?
答案 0 :(得分:0)
正如Joe正确建议的那样,Adblock Plus扩展程序阻止了adblocker.js文件。将文件名更改为blocker.js已解决了这个问题。
我不得不说,我认为这是一种过滤广告的粗暴方式,因为必须有这么多无辜的方式,文件可能在名称中有“广告”。每当我的Firefox出现意外情况时,我都会关注此事。
答案 1 :(得分:0)
尝试将JavaScript代码放在此代码之间
JavaScript文件中的 (function($) { // your code here })(jQuery);
。它与我合作。