2016-12-27 29 views
0

非常に最初の拡張機能のオプションページを作成しようとしています。私はコーディングにはまったく新しいものなので、シンプルな偽造品を作ったと確信しています。残念ながら、私はベースエクステンションでしばらくの間問題なく動作していたいくつかの基本的な機能に問題があります。私は構文を見直して、なぜこれがうまくいかないのかを考えることができ、どこが失敗するのかというエラーを出さない、あらゆる場所を検索しました。私は jsfiddleで振る舞いを再現しました。どんな支援も大歓迎です。ボタンの処理に失敗しました(エラーなし)

--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", 
] 
} 
+0

Typo: 'selectIndex'(https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedIndex)ではなく' selectIndex'です。また、フィドルはエラーを出しますが、最初はjQueryが定義されていないので、フィードバックに正しく含まれていないため、誤ったプロパティを使用していた行のエラー '不定値のプロパティ'値を読み取れません名前 –

+1

'window.onLoad = load_data();'は 'window.onLoad = load_data;'でなければなりません。関数 – charlietfl

+0

に参照を代入するのではなく、すぐに関数を呼び出しているので、上記の推奨事項でフィドルを修正した後、実際にはフィドルで作業します。しかし、Chrome拡張機能でこれとまったく同じコードを読み込むと、「options_page」として失敗します。誰がなぜこれが失敗するかについての洞察を持っていますか?コンソールには何も記録されていません。 「save」ボタンがクリックされたときに「save_data」関数が起動しない理由は何もわかりません。 – technicallynick

答えて

0

サポート文書はありますが、拡張機能の「オプション」ページで「.click()」機能が動作しないことがわかりました。ただし、別のページを使用するのではなく、ブラウザアクション "default_popup"を使用して、クリック機能(他のイベントリスナーなど)をここで使用できます。

これは将来的に誰かに役立つことを願っています!

関連する問題