2017-04-25 103 views
-1

過去兩天我一直在關注兔子洞,但沒有想到這一點。我是新來的編碼,這可能是我的整體問題!我的Chrome擴展使用API​​的Chrome擴展程序無法正常工作

我的HTML代碼(popup.html)如下:

<html> 
    <body> 

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

我votd.js文件的代碼如下。

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

腳本標籤的網站所具有的功能,如果你遵循的網址,雖然我沒有複製和粘帖它,因爲它從瀏覽器中呈現它的格式:哦!

enter image description here

的popup.html文件不拉votd.js文件中的DIV ID來填充, 「ourmanna詩句」。任何人都可以幫我解決這個問題嗎?

我還包含控制檯中的錯誤和votd.js文件中的代碼。也許這是與我的代碼的語法? Console errors and .js file code

+0

js文件應該在html中使用腳本標籤進行引用。另請參閱[擴展概述文章](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腳本引用到:

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

這不起作用,因爲votd.js只能包含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啊,當然,更新 – Keith

+0

請注意,雖然您的答案在技術上是完美無缺的,但對於這個特定目的來說這是一個可怕的解決方案,因爲他們有數據API:http://www.ourmanna.com/verses/api/這比運行任意遠程代碼更安全 - 這可能會讓Chrome網上應用店遇到麻煩。 – Xan

相關問題