0
我正在尝试为我的第一个扩展名创建选项页。我是编码新手,所以我确信我已经做了一个简单的假面。不幸的是,我遇到了一些基本功能方面的问题,这些基本功能在我的基本扩展中有一段时间没有问题。我已经查看了语法并搜索了我能想到的所有地方,为什么这不起作用,并且没有提供关于它为什么失败的错误。我已经转载了 jsfiddle中的行为。任何援助将不胜感激。.click()按钮无法处理(无错误)
--HTML--
<title>Options for My Extension</title>
<script src="jquery-3.1.1.js"></script>
<body>
<h1>Toggle Menu to "Default = Out"?</h1>
<select id="Menu_Hide">
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
<br />
<button id="Save">Save</button>
<br />
<button id="Reset">Reset</button>
</body>
--JS--
function save_data(){
var ob = document.getElementById("Menu_Hide");
var txt = ob.children[ob.selectIndex].value;
localStorage["Menu_Hide"] = txt;
}
function load_data(){
console.log("This loads just fine!")
var data = localStorage["Menu_Hide"];
if (!data){
return;
}
var select = document.getElementById("Menu_Hide");
var found = false;
for (var i = 0; i < select.children.length && !found; i++){
var child = select.children[i];
if (child.value == data) {
child.selected = "true";
found = true;
}
}
}
window.onLoad = load_data();
$('#Save').click(function() {
alert('Settings Saved!');
save_data();
})
--manifest.json--(更新)
{
"manifest_version": 2,
"name": "My first attempt at being useful.",
"description": "This extension will add additional functionality to some pages.",
"version": "1.5",
"options_page": "options.html",
"content_scripts": [{
"js": ["start.js"],
"matches":
[
"https://<url1>"
"https://<url2>",
]
}],
"web_accessible_resources": ["run.js"],
"permissions": [
"activeTab",
"tabs",
]
}
错字:它是['selectedIndex'](https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedIndex)而不是'selectIndex'。另外小提琴确实给错误,第一个是没有定义jQuery,因为你没有为小提琴正确包括它,然后错误'无法读取'undefined'的属性'值为你使用错误属性的行name –
'window.onLoad = load_data();'应该是'window.onLoad = load_data;'。您正在立即调用该函数,而不是分配函数的参考 – charlietfl
好的,因此在将上述建议固定到小提琴后,它确实可以在小提琴上工作。但是,在加载Chrome浏览器扩展程序时,完全相同的代码将作为“options_page”失败。任何人都有任何洞察力,为什么这会失败?没有任何记录到控制台。我没有看到为什么当点击“保存”按钮时,“save_data”函数不会触发。 – technicallynick