我正在构建一个将作为自助服务终端运行的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。
答案 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);
}