2017-04-25 18 views
-1

私は過去2日間ウサギの穴を塞いでいて、これを理解していません。私は私の全体的な問題かもしれないコーディングに新しいです!APIを使用したChrome拡張機能が機能していません

<html> 
    <body> 

    <div id="ourmanna-verse">Loading...</div> 
    <script type="text/javascript" src="votd.js"></script>  </body> 
</html> 

マイvotd.jsファイルのコードは以下の通りです:次のように私のChrome機能拡張のための

私のHTMLコード(popup.html)があります。 O:私はので、ブラウザにそれをレンダリングするから、それのフォーマットをコピーし、それを貼り付けていないよけれどもあなたは、URLに従うならば、スクリプトタグ内

<script src="http://www.ourmanna.com/verses/api/js/" type="text/javascript"> 
</script> 

ウェブサイトが機能を持っています!

enter image description here

popup.htmlファイルは、DIVのIDに移入するために "ourmanna-詩を" votd.jsファイルを引っ張っていません。誰も私がこれを理解するのを助けることができますか?

コンソールからのエラーとvotd.jsファイルのコードも含まれています。たぶんそれは私のコードの構文ですか? Console errors and .js file code

+0

jsファイルは、htmlの 'script'タグを使用して参照する必要があります。 [extensions overview article](https://developer.chrome.com/extensions/overview)も参照してください。 – wOxxOm

+0

ありがとう、wOxxOm - これを反映するようにHTMLファイルを更新しましたが(上記のコード/質問を表示するように更新しました)、HTMLファイルはまだ私の.jsファイルを呼び出さない。その他の提案はありますか?私は本当にあなたの助けに感謝します! –

+0

スクリーンショットのvotd.jsは有効なJavaScriptではありません。 – wOxxOm

答えて

1

http://www.ourmanna.com/verses/api/js/は、(素敵なフォーマットで)このインラインスクリプトが含まれています

(function(){ 
    var mannaverse='For the LORD is our judge, the LORD is our lawgiver, the LORD is our king; it is he who will save us.'; 
    var mannaverse_reference='Isaiah 33:22'; 
    var mannaverse_version='NIV'; 
    if(document.getElementById('ourmanna-verse')!==null){ 
     document.getElementById('ourmanna-verse').innerHTML='<div id="mannaverse-container"><p id="mannaverse">'+ 
     mannaverse+'</p><p id="mannaverse-reference">'+ 
     mannaverse_reference+' <small id="mannaverse-version"><i>('+ 
     mannaverse_version+')</i></small></p></div>'; 
    } 
})(); 

votd.jsはそれにHTMLスクリプトの参照が含まれています:votd.jsのみを含めることができるので、動作しません

<script src="http://www.ourmanna.com/verses/api/js/" type="text/javascript"> 
</script> 

javascript。

ポップアップでこのリモートJSファイルを呼び出すと思っています。そのために、あなたは最初popup.htmlに直接追加する必要があります。

<html> 
<body> 
    <div id="ourmanna-verse">Loading...</div> 
    <script type="text/javascript" src="http://www.ourmanna.com/verses/api/js/"></script>  
</body> 
</html> 

ます。また、manifest.jsonのコンテンツセキュリティポリシーでは、このリモートスクリプトへのアクセスを許可する必要があります。

{ 
    ... 
     "content_security_policy": "script-src 'self' https://www.ourmanna.com blob: filesystem: chrome-extension-resource: ;object-src 'self'", 
    ... 
} 

最後に、あなたが確認する必要がありますHTTPS経由でソーススクリプトを提供できることを確認してください。

+0

'http:'ドメインはホワイトリストに登録できないので、これは不可能です。 – Xan

+0

@Xan Ah、はい、もちろん、更新されました – Keith

+0

あなたの答えは技術的に完璧ですが、この特定の目的のためにはデータAPIを持っているので、それは解決策です:http://www.ourmanna.com/verses/api/これは、任意のリモートコードを実行するよりはるかに安全です。これにより、Chromeウェブストアに問題が発生する可能性があります。 – Xan

関連する問題