我正在为不同搜索引擎中的选定文本搜索进行扩展。如果所选字符串是特定字符串,则其中一个菜单项会更改。到目前为止,我已经完成了这项任务,它完成了我想要的工作,除了我不能让菜单的“标题”改变。如何在函数内的if语句中为变量“myTitle”赋值?
提前致谢。
var myTitle; // if I give value here it does work, but I need the value based on the if statement bellow.
function myFunction(selectedText) {
if(selectedText.match (/someString|SomeOtherString/)) {
var myURL1 = 'https://someURL' + selectedText;
chrome.tabs.create({url: myURL1});
myTitle = "title1"; //I can not make the variable to get this value here
}else{
var myURL2 = 'https://someOtherURL' + selectedText;
chrome.tabs.create({url: topicCall});
myTitle = "title2"; //I can not make the variable to get this value here
}
}
chrome.contextMenus.create({
**"title": myTitle,** // this should change based on the selection
contexts:["selection"],
onclick: function (info)myFunction(info.selectionText);}
});
答案 0 :(得分:2)
你有“因果关系”混淆了。调用chrome.contextMenus.create
后,myFunction
尚未执行,且myTitle
的值尚未分配。
答案 1 :(得分:0)
也许,您可以在加载页面后使用chrome.contextMenus.update。您可以使用默认标题创建菜单,但使用唯一ID。然后使用上面的方法,基于" selectedText"是,并使用ID来替换标题。