Javascript &引用;否则,如果;在铬延伸中不工作的条件

Javascript &引用;否则,如果;在铬延伸中不工作的条件,javascript,google-chrome,google-chrome-extension,gmail,Javascript,Google Chrome,Google Chrome Extension,Gmail,我正试图根据选择的类型为Chrome扩展设置不同的操作。也许我看错了文档,但我不知道这里有什么不起作用 manifest.json { "background": { "scripts": [ "background2.js" ] }, "description": "Creates a context menu option which copies the selected address into a new Gmail compose window.",

我正试图根据选择的类型为Chrome扩展设置不同的操作。也许我看错了文档,但我不知道这里有什么不起作用

manifest.json

{
   "background": {
      "scripts": [ "background2.js" ]
   },

   "description": "Creates a context menu option which copies the selected address into a new Gmail compose window.",

   "manifest_version": 2,
   "name": "New Gmail Window",
   "permissions": [ "tabs", "contextMenus" ],
   "version": "0.1"
}
background.js

chrome.contextMenus.create({
            title: "Send a New Email",
            contexts:["link", "selection"],
            onclick: checkType,
        });

   function checkType(info,tab) { 
        if (info.linkUrl.substring(0, 7) === "mailto:") {     //The "if" works as expected // 
            chrome.windows.create({
                url:"https://mail.google.com/mail/?ui=2&view=cm&fs=1&tf=1&shva=1&to=" +info.linkUrl.substr(7),
                width:640,
                height:700,
                focused:true,
                type:"popup",
            });
            console.log("The linked emails work");
        }
        else if (info.selectionText.containsNode('a',false)) { //I want to look for an <a> tag that isn't working
            console.log("this worked");
        }
        else console.log("nothing to send");
    }
chrome.contextMenus.create({
标题:“发送新电子邮件”,
上下文:[“链接”、“选择”],
onclick:checkType,
});
函数检查类型(信息,选项卡){
if(info.linkUrl.substring(0,7)=“mailto:”){//“if”按预期工作//
chrome.windows.create({
url:“https://mail.google.com/mail/?ui=2&view=cm&fs=1&tf=1&shva=1&to=“+info.linkUrl.substr(7),
宽度:640,
身高:700,
对,,
键入:“弹出”,
});
console.log(“链接的电子邮件工作”);
}
else if(info.selectionText.containsNode('a',false)){//我想查找一个不起作用的标记
console.log(“这起作用”);
}
else console.log(“无需发送”);
}

谢谢您的帮助。

信息。selectionText
是一个字符串。您从哪里获得的
containsNode
方法?从这个问题和前面的问题可以明显看出,您认为可以从背景页面直接访问web页面的DOM。事实并非如此。如果要根据所选文本更改上下文菜单行为,则需要通过内容脚本与页面交互。有关基于DOM更改上下文菜单行为的示例,请参见本问答:是的,关于从后台页面获取DOM,这不是一个限制,只是没有意义,因为后台页面处理来自多个页面的请求,每个页面都有自己的DOM。@RobW你说得对,我正在学习。当我尝试使用两个独立的上下文菜单调用时,我一直在尝试重新构造它,以便它能够识别您正在选择的内容。我很感激与另一个线程的链接,这样我就可以用正确的方式来做。