Chrome扩展 - 无法获得输入值
问题描述:
我正在尝试获取输入值并将其设置为var以更改网页值。我不知道这是否是正确的方式,但据我所知:/我需要使自动填充从我的扩展输入中填充页面。我试图直接搜索我的input.value时做到这一点,但它总是显示为null,并且我也尝试将输入保存在localStorage中......但它不工作:(当我尝试执行操作时,我会发布所有内容当我救我输入的localStorage 很抱歉,如果这是一个愚蠢的问题,但我只是不能得到它的工作:(Chrome扩展 - 无法获得输入值
清单文件:
{
"manifest_version" : 2,
"name": "sAVING iNPUT",
"version": "1.0",
"description" : "Click something pls",
"version" : "1.0",
"permissions" : ["<all_urls>"],
"browser_action" : {
"default_popup" : "popup.html"
}
}
Popup.html文件:
<!DOCTYPE html>
<html>
<head><title> activity</title></head>
<body>
<div>
<div>
E-Pasts
<input type="text" name="epasts" id="epasts"></input>
</div>
<button id="ielogoties" aonClick="saveInput()" > login </button>
</div>
<script src="popup.js">
function saveInput(){
localStorage.setItem("epastss", document.getElementById("epasts"));
}
</script>
</body>
</html>
Popup.js文件:
个function injectTheScript() {
chrome.tabs.query({active : true, currentWindow:true},function(tabs){
chrome.tabs.executeScript(tabs[0].id,{file: "content_script.js"});
});
}
document.getElementById("ielogoties").addEventListener
("click",injectTheScript);
content_script.js文件:
var drepasts = document.getElementById("email");
var epasts = localStorage.getItem("epastss")
drepasts.value= epasts;
alert("hehejr");
localStorage.removeItem("epasts");
现在,当我按下按钮,我收到此错误:
拒绝,因为它违反了以下内容安全策略指令执行内联事件处理程序:“ script-src'self'blob:filesystem:chrome-extension-resource:“。 “内联不安全”关键字,散列('sha256 -...')或一个随机数('nonce -...')是启用内联执行所必需的。
答
您需要声明清单文件中的storage
权限才能访问localStorage
。
你permissions
部分应该是这样的:
"permissions" : ["<all_urls>", "storage"],
或者:
"permissions": [
"<all_urls>",
"storage"
],
更多信息,请参见chrome.storage documentation。
而且,我猜这只是您的文章错字,但aonClick
应该是onclick
:
<button id="ielogoties" aonClick="saveInput()" > login </button>
的方式你的代码是正确的,现在,它抓住了<input>
元素本身并将其保存在localStorage
中,然后检索该值并尝试将其插入ID为“email”的元素中。这可能是你为什么得到null
。
要获得输入值,而不是输入元素,你setItem
声明改成这样:
localStorage.setItem("epastss", document.getElementById("epasts").value);
它由我一个愚蠢的错误,但它仍然显示为空:( – TheProfesor
@TheProfesor你是不是想保存输入元素或其值?如果要保存它的值,则需要将'setItem'值更改为'document.getElementById(“epasts”).value'。 – freginold