[英]Problems checking all boxes on another website using Javascript for Chrome Extension
我是Javascript的新手,請耐心等待:(
我正在嘗試創建一個Google Chrome擴展程序,用於檢查特定網站上的所有框,並選擇他們擁有的刪除選項
我在網上找到了一個鏈接,其中有人制作了一個類似於我想要的腳本:
我正在為我的擴展創建javascript文件,我創建了一些代碼,僅用於檢查所有框。 它似乎不起作用。 你能給我一些提示嗎? 這是我到目前為止編寫的代碼,擴展只在.js源文件中有這個代碼,我只是要求它現在檢查所有的框
我使用與Chrome擴展程序教程相同的布局,稍后會對其進行更改
抱歉看起來像一個菜鳥,請幫幫我們。 謝謝!
function check_all_in_document(doc){
var c=new Array();
c=doc.getElementsByTagName('input');
for(var i=0;i<c.length;i++){
if(c[i].type=='checkbox'){
c[i].checked=true;
}
}
}
document.addEventListener("DOMContentLoaded", function()
{
check_all_in_document(window.document);
for(var j=0;j<window.frames.length;j++){
check_all_in_document(window.frames[j].document);
}
});
這是我的manifest.json的內容
{
"manifest_version": 2,
"name": "Getting started example",
"description": "This extension shows a Google Image search result for the current page",
"version": "2.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"https://ajax.googleapis.com/"
]
}
這是我的HTML文件中的內容:
<!doctype html>
<!--
This page is shown when the extension button is clicked, because the
"browser_action" field in manifest.json contains the "default_popup" key with
value "popup.html".
-->
<html>
<head>
<title>Getting Started Extension's Popup</title>
<style>
body {
font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif;
font-size: 100%;
}
#status {
/* avoid an excessively wide status text */
white-space: pre;
text-overflow: ellipsis;
overflow: hidden;
max-width: 400px;
}
</style>
<!--
- JavaScript and HTML must be in separate files: see our Content Security
- Policy documentation[1] for details and explanation.
-
- [1]: https://developer.chrome.com/extensions/contentSecurityPolicy
-->
<script src="popup.js"></script>
</head>
<body>
<div id="status"></div>
<img id="image-result" hidden>
</body>
</html>
好吧,我震驚地沒有找到重復(並指出一個會贊賞),所以這是一個常規答案:
你的popup.html
是它自己獨立的文檔。 當你執行
doc.getElementsByTagName('input')
您正在搜索彈出窗口本身,而不是當前活動的選項卡。
由於您不熟悉擴展,因此仔細閱讀擴展架構概述甚至整個概述頁面都是非常重要的。 但是快速TL; DR:只有內容腳本實際上可以與普通標簽的內容進行交互。 在內容腳本中, document
是指在選項卡中打開的實際頁面,您的代碼可以使用。
您已擁有"activeTab"
權限,因此您可以在單擊按鈕后在當前頁面中注入內容腳本。
chrome.tabs.executeScript(null, {file: "content.js"}); // null for current tab
將操作DOM的代碼放在該文件content.js
,並使用Messaging / Storage在擴展的各個部分之間進行通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.