我有一个使用PhoneGap / Cordova构建的跨平台应用程序。
我正在尝试实现一个在控制器加载时运行外部JavaScript文件的函数。我正在遵循HERE的解决方案。同样HERE。但我希望JavaScript在没有window.open事件的情况下执行,即我想在设备准备就绪后立即运行 executeScript 。
如何在不先定义 var ref 的情况下调用 executeScript() ?
var navigation = angular.module("navigation", []);
navigation.controller("Navigation", function ($scope) {
var init = function () {
document.addEventListener("deviceready", onDeviceReady, false);
};
init();
function onDeviceReady() {
// LOAD EXTERNAL SCRIPT
var ref = window.open('http://www.haruair.com/', '_blank', 'location=yes, toolbar=yes, EnableViewPortScale=yes');
ref.addEventListener("loadstop", function () {
ref.executeScript(
{ file: 'http://haruair.com/externaljavascriptfile.js' },
function () {
ref.executeScript(
{ code: 'getSomething()' },
function (values) {
var data = values[0];
alert("Name: " + data.name + "\nAge: " + data.age);
});
}
);
});
});
答案 0 :(得分:1)
您可以尝试在index.html
文件中添加脚本,并从JS做任何您想做的事情。此外,您必须将此端点添加到白名单中。
<!-- index.html -->
<script>
function onCustomLoad() {
//do stuff
}
</script>
<script src="your-custom-script" onload="onCustomLoad"></script>
答案 1 :(得分:0)
你可以使用
var script = document.createElement("script");
script.type = "text/javascript";
script.id = "some_id";
script.src = 'http://haruair.com/externaljavascriptfile.js';
document.head.appendChild(script);
然后在完成后调用该函数