如何在Chrome App中以编程方式加载JavaScript?

时间:2015-07-20 15:55:06

标签: javascript jquery google-chrome-extension google-chrome-app

我正在构建一个将作为自助服务终端运行的Chrome应用。我遇到的问题是Chrome应用程序喜欢" one"页面所以加载不同的内容并不像只链接到另一个页面那么简单。我所做的是使用jQuery .load()加载我的页面。我现在遇到的一个问题是,每个页面都有一些使用JPlayer插件的HTML5视频。在这些页面上,我有一些内联js可以让视频播放器工作。但是,内联JS在Chrome应用程序中是禁忌的(UGH!)。当我点击某些东西时,有没有办法可以动态地将javascript加载到我的应用程序中? Rgiht现在我有类似的东西..

$(".video_list a").click(function(){
    $(".screen").load("video.html", function(){
        $.getScript("video.js");
    });
});

video.js将包含JPlayer设置以创建视频播放器。当我将它作为浏览器中的常规网页运行时,它可以正常工作,但是当它的Chrome应用程序无法正常工作时我没有错误,只是视频应该是空的div。

1 个答案:

答案 0 :(得分:0)

你不能这样做,因为它再次使用内联代码 - getScript将脚本加载为文本,然后加载eval

要解决此问题,您可以将脚本作为<script src="...">标记插入:

function loadScript(name) {
  var s = document.createElement('script');
  s.src = chrome.runtime.getURL(name);
  s.onload = function() {
    this.parentNode.removeChild(this);
  };
  (document.head||document.documentElement).appendChild(s);
}