私はクロム拡張機能を開発しています。ユーザーが選択したテキストを取得したいのですが、同様の非拡張ページで実行するとコードは正常に機能しますが、バックグラウンド ページ拡張機能では機能しません。console.log で選択の値を取得しようとしても、何も返されません。ここに私のjavasciptファイルがあります:
window.onload = myOnload;
function myOnload(){
var button = document.getElementById("button");
chrome.contextMenus.create({
"title":"MissLang Fix",
"contexts":["all"],
"onclick": myClick2
});
document.getElementById("input").innerHTML = "mojtaba";
button.onclick= function(){myClick()};
}
function myClick2(){
var txt = '';
if (chrome.extension.getBackgroundPage().window.getSelection)
txt = chrome.extension.getBackgroundPage().window.getSelection();
else if (chrome.extension.getBackgroundPage().document.getSelection)
txt = chrome.extension.getBackgroundPage().document.getSelection();
else if (chrome.extension.getBackgroundPage().document.selection)
txt = chrome.extension.getBackgroundPage().document.selection.createRange().text;
console.log("this is the console message");
console.log("txt: " + txt);
}
function myClick(){
var myString = document.getElementById("input").value;
for(var i=0;i<myString.length;i++){
myString = myString.replace("q","ض");
myString = myString.replace("w","ص");
}
document.getElementById("output").innerHTML = myString;
}
ここに私のmanifest.jsonファイルがあります:
{
"name": "MissLang Fix extension",
"manifest_version": 2,
"version": "1.0",
"description": "fixing english to farsi typings.",
"icons":{
"16":"icon_16.png",
"128":"icon_128.png"
},
"background":{
"scripts":["script.js"]
},
"browser_action": {
"default_icon": "icon.png",
"default_popup": "missLangFix.html"
},
"permissions": [
"tabs",
"contextMenus"
]
}