ユーザーが右クリック メニュー (contextmenus) のボタンをクリックしたときに、Web ページの選択したテキストを強調表示する拡張機能を開発しようとしています。
プログラムによるインジェクションを使用して modalwindow を使用しようとしていますが、スクリプトを実行できないため、選択したテキストに関する情報もユーザーから取得されます。コードにエラーは表示されません。コードは次のとおりです。
マニフェスト.json
{
"manifest_version": 2,
"name": "web highlighter",
"description": "save the content of the selected text",
"version": "1.0",
"background": {
"page" : "background.html"
},
"icons": {
"16": "icon.png",
"48": "icon.png"
},
"minimum_chrome_version": "6",
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"background.js", "content_scripts.js"
]
}
],
"web_accessible_resources": [
],
"permissions": [ "contextMenus", "tabs", "http://*/*" ]
}
background.html
<html>
<head>
<script src = "background.js"></script>
</head>
<body>
</body>
</html>
background.js
function get_modal(info,tab)
{
chrome.tabs.executeScript(null, {file: "content_scripts.js"});
}
chrome.contextMenus.create({title: "Highlight %s with capsule", contexts:["selection"], onclick: get_modal})
content_script.js
iframeElement = document.createElement("iframe");
iframeElement.setAttribute("style","width: 100%; height: 100%;");
wrapperDiv.appendChild(iframeElement);
modalDialogParentDiv = document.createElement("div");
modalDialogParentDiv.setAttribute("style","position: absolute; width: 350px; border: 1px solid rgb(51, 102, 153); padding: 10px; background-color: rgb(255, 255, 255); z-index: 2001; overflow: auto; text-align: center; top: 149px; left: 497px;");
modalDialogSiblingDiv = document.createElement("div");
modalDialogTextDiv = document.createElement("div");
modalDialogTextDiv.setAttribute("style" , "text-align:center");
modalDialogTextSpan = document.createElement("span");
modalDialogText = document.createElement("strong");
modalDialogText.innerHTML = "web highlighter";
breakElement = document.createElement("br");
imageElement = document.createElement("img");
imageElement.src = chrome.extension.getURL("spinner_progress.gif");
modalDialogTextSpan.appendChild(modalDialogText);
modalDialogTextDiv.appendChild(modalDialogTextSpan);
modalDialogTextDiv.appendChild(breakElement);
modalDialogTextDiv.appendChild(breakElement);
modalDialogTextDiv.appendChild(imageElement);
modalDialogSiblingDiv.appendChild(modalDialogTextDiv);
modalDialogParentDiv.appendChild(modalDialogSiblingDiv);
document.body.appendChild(wrapperDiv);
document.body.appendChild(modalDialogParentDiv);