2017-04-25 79 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

相关问题