JavaScript没有正确地传递变量?

JavaScript没有正确地传递变量?,javascript,Javascript,在我开始之前,让我声明我是JavaScript的noob。。。所以我相信下面的问题是个愚蠢的问题。然而,我被困住了——任何帮助都是感激的 我正在使用在找到的BlockAdBlock脚本。我已将HTML文件设置为: <script>var blockAdBlock = false</script> <script type="text/javascript" src="blockadblock.js"></script> <

在我开始之前,让我声明我是JavaScript的noob。。。所以我相信下面的问题是个愚蠢的问题。然而,我被困住了——任何帮助都是感激的

我正在使用在找到的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);
    }
var blockAdBlock=false
myBlockAdBlock=newblockadblock({checkOnLoad:true,resetOnEnd:true});
var-abcdefg=0;
函数adBlockNotDetected(){
警报(“AdBlock未启用”);
abcdefg=1;
}
函数adBlockDetected(){
警报(“AdBlock已启用”);
abcdefg=2;
}
如果(myBlockAdBlock的类型=='undefined'){
adBlockDetected();
}否则{
myBlockAdBlock.on(真,adBlockDetected)。onNotDetected(adBlockNotDetected);
}
代码在BlockAdBlock方面运行良好,直接从BlockAdBlock的github页面中删除——adBlockNotDetected和adBlockDetected函数中的警报会按预期触发。但是,我无法正确设置变量abcdefg的值;我期望abcdefg=1或abcdefg=2,这取决于是否检测到ad块,但我始终得到abcdefg=0。我完全不明白自己做错了什么

请帮忙


谢谢

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

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

在blockadblock.js有时间加载和执行之前,您的js可能正在运行。尝试将代码包装到document.onreadystate处理程序中。@TomDDD我认为这不是问题所在。我添加了警报(“Ad块已启用”);函数adBlockDetected()和类似函数adBlockNotDetected()的东西——这两个警报都会按预期触发,因此问题不可能出在blockadblock.js上。我猜您在执行回调之前使用了
abcdefg
变量-上的名称
表明它们是异步调用的,但是您必须查看要发布的文档(或实现)sure@Aprillion在上面列出的回调之后,我在代码中使用abcdefg。使用abcdefg的代码是否可能在上述代码之前执行?后面的JavaScript代码是否可以在前面执行?对不起,没有问题。是的,非常抱歉-