为什么SetTimeout没有执行?

时间:2016-06-13 18:15:06

标签: javascript settimeout bookmarklet

我正在尝试编写一个javascript书签,根据当前的URL,导航到另一个页面。然后在导航完成后,它会查找特定的ID标签,然后再次导航。

我完成了第一次导航工作:

的javascript:

(function() {
    ADCURL = "PageA.aspx";
    var temp = window.location.href;
    var tarr = temp.split("/");
    var serv = "https://" + tarr[2];
    var x = document.getElementsByTagName("html")[0].dir;
    if (x) {
        var x = document.getElementsByTagName("link");
        for (i = 0; i < x.length; i++) {
            var y = x[i].attributes[2].value;
            var lookingfor = "_vti_bin";
            var lookingforRegExp = new RegExp(lookingfor);
            if (lookingforRegExp.test(y)) {
                var z = y.replace("_vti_bin/spsdisco.aspx", ADCURL);
                var link = serv + z;
                window.location.href = link;
            }
        }
    } else {
        DL5 = document.links;
        for (lKi = 0; lKi < DL5.length; lKi++) {
            map = DL5[lKi];
            var lookingfor = "sites";
            var lookingforRegExp = new RegExp(lookingfor);
            if (lookingforRegExp.test(map)) {
                var lookingfor = "_layout";
                var lookingforRegExp = new RegExp(lookingfor);
                if (lookingforRegExp.test(map)) {} else {
                    var lookingfor = "SharedDocuments";
                    var lookingforRegExp = new RegExp(lookingfor);
                    if (lookingforRegExp.test(map)) {
                        var n = String(map).indexOf("SharedDocuments");
                        var x = String(map).slice(0, n);
                        var link = x + ADCURL;
                        window.location.href = link;
                    }
                }
            }
        }
    }
})();

然而,当我尝试使用SetTimeout来延迟脚本以便我可以从我导航到的页面中获取所需的ID时,没有任何反应(现在我只有一个窗口警报作为占位符,直到我得到SetTimeout工作):

的javascript:

(function() {
    ADCURL = "PageA.aspx";
    var temp = window.location.href;
    var tarr = temp.split("/");
    var serv = "https://" + tarr[2];
    var x = document.getElementsByTagName("html")[0].dir;
    if (x) {
        var x = document.getElementsByTagName("link");
        for (i = 0; i < x.length; i++) {
            var y = x[i].attributes[2].value;
            var lookingfor = "_vti_bin";
            var lookingforRegExp = new RegExp(lookingfor);
            if (lookingforRegExp.test(y)) {
                var z = y.replace("_vti_bin/spsdisco.aspx", ADCURL);
                var link = serv + z;
                window.location.href = link;
            }
        }
    } else {
        DL5 = document.links;
        for (lKi = 0; lKi < DL5.length; lKi++) {
            map = DL5[lKi];
            var lookingfor = "sites";
            var lookingforRegExp = new RegExp(lookingfor);
            if (lookingforRegExp.test(map)) {
                var lookingfor = "_layout";
                var lookingforRegExp = new RegExp(lookingfor);
                if (lookingforRegExp.test(map)) {} else {
                    var lookingfor = "SharedDocuments";
                    var lookingforRegExp = new RegExp(lookingfor);
                    if (lookingforRegExp.test(map)) {
                        var n = String(map).indexOf("SharedDocuments");
                        var x = String(map).slice(0, n);
                        var link = x + ADCURL;
                        window.location.href = link;
                    }
                }
            }
        }
    }
setTimeout(function(){window.alert("yes");}, 2000);
})();

任何想法发生了什么?在书签中使用javascript是不可能做我想做的事情?

0 个答案:

没有答案