【问题标题】:Loading external JavaScript file加载外部 JavaScript 文件
【发布时间】:2017-07-05 10:07:58
【问题描述】:

我有一个使用 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);
                    });
              }
            );
        });
});

【问题讨论】:

    标签: javascript cordova phonegap


    【解决方案1】:

    您可以尝试将脚本添加到index.html 文件中,然后从 JS 中做任何您想做的事情。此外,您必须将此端点添加到白名单中。

    <!-- index.html -->
    
    <script>
      function onCustomLoad() {
        //do stuff
      }
    </script>
    <script src="your-custom-script" onload="onCustomLoad"></script>
    

    【讨论】:

    • 耶。两者都添加了,但我实际上如何从 onDeviceReady 函数自动调用该方法?我不确定语法。
    • 您可以在脚本中添加一个 onload 侦听器以检查何时加载,另一个用于检查 Cordova 何时准备就绪(触发事件 cordovaReady 或类似事件)
    【解决方案2】:

    你可以使用

    var script = document.createElement("script");
    script.type = "text/javascript";
    script.id = "some_id";
    script.src = 'http://haruair.com/externaljavascriptfile.js';
    document.head.appendChild(script);
    

    完成后调用函数

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多