Javascript 按键时循环未激活[Chrome Extension]

Javascript 按键时循环未激活[Chrome Extension],javascript,html,if-statement,content-script,Javascript,Html,If Statement,Content Script,因此,在我的内容脚本中,where的语句表示“currenturlval=='gmail'”似乎根本没有运行 var currenturlval; var geturl = window.location.toString(); if (geturl.includes('twitter.')) { currenturlval = 'twitter'; } else if (geturl.includes('mail.google.')) { currenturlval = 'gm

因此,在我的内容脚本中,where的语句表示“currenturlval=='gmail'”似乎根本没有运行

var currenturlval;
var geturl = window.location.toString();
if (geturl.includes('twitter.')) {
    currenturlval = 'twitter';
} else if (geturl.includes('mail.google.')) {
    currenturlval = 'gmail';
    console.log(currenturlval);
} else if (geturl.includes('facebook.')) {
    currenturlval = 'facebook';
} else {
    currenturlval = 'default';
}
document.body.onkeydown = function(){
    if(connected == true) {
        keycurrent = keycurrent + 1;
        //initial react DOM render
        if (boolinitial == false) {
            renderOverlay();
            renderDropdown();
            boolinitial = true;
        }
        if (currenturlval == 'twitter') {
            var twitterinput = document.querySelector('[contenteditable]:focus > div');
            extractinputdata(twitterinput);
        } else if (currenturlval == 'gmail') {
            console.log("test");
            var gmailinput = document.querySelector('[aria-label="Message Body"][role="textbox"]');
            extractinputdata(gmailinput);
        }
        keycheck();
    }
};

控制台中不会弹出错误消息,此循环适用于其他网站(如twitter和facebook)。不知道为什么gmail不能工作。

更新 好的,否决票,很公平,答案不正确,请忽略前面的答案。当google mail打开时,第一个if循环的代码部分可以在控制台中正常工作。它记录“gmail”

第二部分我无能为力,变量缺失,无法重现。我想错误在第二部分

如果我登录:

var gmailinput = document.querySelector('[aria-label="Message Body"][role="textbox"]');
它返回NULL

初始答案:
我不知道你想做什么,我也没有完全理解上下文,但我认为问题在于这一行 (geturl.includes('mail.google')){ currenturlval='gmail'; 换成 (geturl.includes('mail')){
currenturlval='gmail';

您没有给出任何上下文。什么是currenturlval?什么是getUrl?我甚至看不到您引用的循环?onKeyDown应该是onKeyDown我添加了完整的循环,这样您就可以看到getUrl=window.location.toString()的内容;当gmail打印“gmail”时返回。出于某种原因,该循环适用于除gmail之外的所有网站。