按键时循环未激活 [Chrome 扩展名]
Loop not activating on keypress [Chrome Extension]
所以在我的内容脚本中,"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 不起作用。
更新
好的,downvote,很公平,答案不正确,请忽略以前的答案。当 google 邮件打开时,第一个 if 循环的代码部分在控制台中运行良好。它记录 'gmail'。
第二部分我帮不上忙,变量丢失,无法重现。我猜错误在第二部分。
如果我登录:
var gmailinput = document.querySelector('[aria-label="Message Body"][role="textbox"]');
它returns NULL。
初步回答:
我不知道你想做什么,我缺少上下文来完全理解,但我认为问题是因为这一行
(geturl.includes('mail.google.')) {
currenturlval = 'gmail';
改成
(geturl.includes('mail')) {
currenturlval = 'gmail';
所以在我的内容脚本中,"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 不起作用。
更新
好的,downvote,很公平,答案不正确,请忽略以前的答案。当 google 邮件打开时,第一个 if 循环的代码部分在控制台中运行良好。它记录 'gmail'。
第二部分我帮不上忙,变量丢失,无法重现。我猜错误在第二部分。
如果我登录:
var gmailinput = document.querySelector('[aria-label="Message Body"][role="textbox"]');
它returns NULL。
初步回答:
我不知道你想做什么,我缺少上下文来完全理解,但我认为问题是因为这一行
(geturl.includes('mail.google.')) {
currenturlval = 'gmail';
改成
(geturl.includes('mail')) {
currenturlval = 'gmail';