Chrome扩展程序找不到当前标签?

时间:2014-09-21 04:39:36

标签: javascript jquery google-chrome-extension

在我的代码中,我想检查您所在的页面上是否符合某些要求,执行某些操作

它说它无法获得未定义的toLowerCase

这是我的代码,谢谢

另外,我在清单中有标签权限 此文件在后台运行,我希望它为您打开的每个页面执行

var names = ['hunter5deer', 'pielovingcat', '199MS', 'harrdy']
$(function() {
    for (i=0;i<names.length;i++) {
        var currentPage;
        chrome.tabs.getSelected(null,function(tab) {
            currentPage = tab.url;
        });
        var page;
        if (currentPage.toLowerCase().indexOf("item?id=") > -1) {
            page = 'seller';
            name(page, names[i]);

        }
        else if (currentPage.toLowerCase().indexOf("showpost.aspx?postid=") > -1) {
            page = 'forum';
            name(page, names[i]);
        }
        else if (currentPage.toLowerCase().indexOf("user.aspx?") > -1) {
            page = 'profile'
            name(page, names[i]);
        }
    }
});

1 个答案:

答案 0 :(得分:1)

chrome.tabs.getSelected异步执行,因此在设置currentPage之前if语句正在运行。在回调中移动if语句。

var names = ['hunter5deer', 'pielovingcat', '199MS', 'harrdy']
$(function() {
    for (i=0;i<names.length;i++) {
        chrome.tabs.getSelected(null,function(tab) {
            var currentPage = tab.url;
            var page;
            if (currentPage.toLowerCase().indexOf("item?id=") > -1) {
                page = 'seller';
                name(page, names[i]);

            }
            else if (currentPage.toLowerCase().indexOf("showpost.aspx?postid=") > -1) {
                page = 'forum';
                name(page, names[i]);
            }
            else if (currentPage.toLowerCase().indexOf("user.aspx?") > -1) {
                page = 'profile'
                name(page, names[i]);
            }
        });
    }
});