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