如果检测到adblock,则尝试打开模式

时间:2018-06-12 22:55:10

标签: jquery twitter-bootstrap

我正在尝试检测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">&times;</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;
&#13;
&#13;

知道我做错了什么?

2 个答案:

答案 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及相关文档以获取更多信息。