我在使用下面的jQuery时出现错误问题一直出现在IE中。错误是'由于漫长的运行脚本,示例页面没有响应'
该脚本基本上是检查谷歌广告位,以及观众是否安装了广告块,以及屏幕是否位于' X'大小通过CSS中的显示无。
如果您在台式机/笔记本电脑上的Chrome中查看http://www.prewheeled.co.uk,则应该会看到右上角的广告。 (请不要点击它!) 现在......如果您拖动浏览器窗口的边缘以使其变小,您应该会看到广告被更小/适合移动设备的版本所取代。
但是不要一直在HTML中加载两个广告(查看来源以查看包含广告的两个div)我想在HTML中加载其中一个,具体取决于屏幕尺寸。不只是通过CSS隐藏它。
我对jQuery并不是很熟悉,我只是把这个脚本搞得一团糟,但是IE让我很生气......我使用的源jQuery是:ajax.googleapis.com/ AJAX /库/ jquery的/ 1.11.0 / jquery.min.js
如果有人可以通过至少纠正我的代码来提供帮助,那就太棒了,谢谢。这是我尝试过的,但在IE11中给出了错误。
<script type="text/javascript">
$(document).ready(function(){
setTimeout(checkAds, 1000);checkAds2();checkAds3();
});
function checkAds() {
if ($(".google-468").height() == '0') {
$(".google-468").replaceWith('<div id="block-468"></div><div id="block-responsive-468">Ad Blocker? Our site will not work correctly for you sadly!<br />Please add our site to your allowed list</div>');
}
}
function checkAds2() {
if ($("#google-468").css('display') == 'none') {
$("#google-468").replaceWith('');
}
}
function checkAds3() {
if ($("#google-468-responsive").css('display') == 'none') {
$("#google-468-responsive").replaceWith('');
}
}
</script>
答案 0 :(得分:0)
首先,正如它在documentation中所说的那样,将代码传递给setTimeout
时强烈建议不要这样做:
代码:在备用语法中是您希望在延迟毫秒后执行的一串代码(建议不要使用此语法,原因与使用eval()相同)
所以我建议使用以下语法调用函数:
setTimeout(checkAds, 25);
但是,如果您仍然希望像使用它一样使用它,则需要在window
上下文中定义这些功能,请参阅jsfiddle:
window.checkAds = function() {
...
}
它没有用,因为当解释器动态地将你的代码包装在匿名函数中时,你的函数在新的上下文中是未定义的。