JavaScript没有正确传递变量?

时间:2015-05-27 08:20:57

标签: javascript

在开始之前,让我说明我是JavaScript的菜鸟......所以我确定以下是一个愚蠢的问题。但是,我被卡住了 - 感谢任何帮助。

我使用https://github.com/sitexw/BlockAdBlock处的BlockAdBlock脚本。我已经设置了我的HTML文件:

   <script>var blockAdBlock = false</script>
    <script type="text/javascript" src="blockadblock.js"></script>
    <script type="text/javascript">
    myBlockAdBlock = new BlockAdBlock({checkOnLoad: true, resetOnEnd: true});
    var abcdefg = 0;
    function adBlockNotDetected() {
            alert('AdBlock is not enabled');
            abcdefg = 1;
        }
        function adBlockDetected() {
            alert('AdBlock is enabled');
            abcdefg = 2;
        }

    if(typeof myBlockAdBlock === 'undefined') {
        adBlockDetected();
    } else {
        myBlockAdBlock.on(true, adBlockDetected).onNotDetected(adBlockNotDetected);
    }

代码在BlockAdBlock方面运行良好,并且直接在BlockAdBlock的github页面之外 - adBlockNotDetected和adBlockDetected函数中的警报按预期触发。但是,我无法正确设置变量abcdefg的值;我期待abcdefg = 1或abcdefg = 2,具体取决于是否检测到广告块,但我总是得到abcdefg = 0.我完全不知道我做错了什么。

请帮帮忙?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你需要确保在执行一些回调之后执行一段代码,你可以将代码放入一个函数中并从第一个回调函数调用,例如:

var abcdefg;
function adBlockNotDetected() {
    console.log('AdBlock is not enabled');
    abcdefg = 1;
    executeSomethingElse();
}
function executeSomethingElse() {
    console.log(abcdefg);
}