我参考 [ https://github.com/olark/lightningjs]将 js 加载到单独的窗口命名空间中。
我已经测试了一个名为 sample.js 的脚本文件,如下所示,需要在单独的窗口命名空间中加载。
function testjs(){
console.log("sample");
}
我在我的 html 中包含了 Lightningjs-embed.js 和 lightining-bootstrap.js。
<html>
<head>
<title>testing light js</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/lightningjs-master/lightningjs-embed.js" ></script>
<script type="text/javascript" src="js/lightningjs-master/lightningjs-bootstrap.js"></script>
<script type="text/javascript">/*{literal}<![CDATA[*/
/*** lightningjs-embed.min.js ***/
window.piratelib = lightningjs.require("piratelib","js/sample.js");
/*]]>{/literal}*/</script>
console.log("modules",lightningjs.modules);
piratelib("testjs");
在控制台中,我可以查看两个对象,一个是 Lightningjs,另一个是 piratelib。我期待在调用piratelib(“testjs”)后在控制台中获得“样本”。但我没有在控制台中获得样本。如果在控制台中尝试 piratelib("testjs") 它会显示
function promiseFunction() {
console.log("promisdeId",promiseResponseId);
promiseFunction.id = promiseResponseId;
return modules[namespace].apply(promiseFunction, arguments)
}
而不是 sample.js 中的实际函数
function testjs(){
console.log("sample");
}
建议我一些想法在单独的 window.namespace 下加载 js 以避免 js 冲突。澄清我是否使用 Lightningjs 以正确的方式调用函数。提前致谢。