簡體   English   中英

循環在按鍵[Chrome擴展程序]上未激活

[英]Loop not activating on keypress [Chrome Extension]

因此,在我的內容腳本中,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郵件打開時,第一個if循環的代碼部分在控制台中可以正常工作。 它記錄“ gmail”。

我不能幫助第二部分,變量丟失並且無法重現。 我猜這是第二部分的錯誤。

如果我登錄:

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

它返回NULL。

初步答案:
我不知道您想做什么,但我想了解的上下文仍不完整,但是我認為問題是因為這一行(geturl.includes('mail.google。')){currenturlval ='gmail'; 將其更改為(geturl.includes('mail')){currenturlval ='gmail';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM