我正在尝试检测adblock,我正在使用jquery,如果用户有adblock,它应该打开一个bootstrap模式,如果用户不在,我应该让模态隐藏。这是我的代码
var canRunAds位于ads.js文件夹中,加载时不是问题,我用alert()测试了它; instad并且在那里工作正常:))
var canRunAds = true;

<!DOCTYPE html>
<htm>
<head>
<meta charset="utf-8" />
<title>Farvel Sælgere!</title>
<script src="../Scripts/jquery-3.0.0.js"></script>
<script src="../Scripts/bootstrap.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">
<link href="../Content/Main.css" rel="stylesheet" />
<script src="../Scripts/ads.js"></script>
<script>
if (window.canRunAds === undefined) {
$('#myModal').modal('show');
} else {
$('#myModal').modal('hide');
}
</script>
</head>
<body>
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Modal Header</h4>
</div>
<div class="modal-body">
<p>Some text in the modal.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</body>
</html>
&#13;
知道我做错了什么?
答案 0 :(得分:0)
我自己找到了这个问题,是的!不得不准备好文件!所以我将脚本更改为:
$(document).ready(function () {
if (window.canRunAds === undefined) {
$('#myModal').modal('show');
}
});
答案 1 :(得分:0)
将脚本标记放在body标记的底部,如下所示
<body>
...
<script src="..."></script>
<script>
...
</script>
</body>
如果您之前编写过javascript,那么当您运行javascript时,您正在寻找的DOM节点(即#myModal
)将不存在。
这样做的好处是在下载JS文件时不会阻止渲染。
$(document).ready()
有效,但您也应该将所有JS文件移动到正文的底部。 (还有一些async / defer属性可以让JS处于正常状态,但现在不用担心这些。)
阅读this及相关文档以获取更多信息。