【问题标题】:phonegap build Uncaught ReferenceError: onLoad is not definedphonegap build Uncaught ReferenceError: onLoad is not defined
【发布时间】:2016-01-19 19:38:56
【问题描述】:

构建一个 Phonegap Build 应用程序并突然遇到一个奇怪的问题。我在 Chrome 检查中收到以下错误: Uncaught ReferenceError: onLoad is not defined

这是我的代码:

        function onLoad(){

            document.addEventListener("deviceready", onDeviceReady, false);

        }

确实在 onDeviceReady 内部,我做的第一件事是alert("hello");,但我从未看到警报。

来电者如下:

<body onload="onLoad()">

【问题讨论】:

  • 您所拥有的不会引发 ReferenceError。只有在函数不在范围内的情况下 调用 onLoad 才会导致这种情况。该函数和您的调用是否在同一范围内?
  • 缩进表明onLoad 是在另一个函数中定义的(或者只是格式错误?)。您确定调用者可以访问声明onLoad 的范围吗?
  • @Robusto 已编辑以包含调用者。
  • 您的onLoad() 必须在 DOM 完成加载之前可用。
  • 您的 index.html 中有内容安全策略元标记吗?

标签: javascript cordova phonegap-build


【解决方案1】:

看起来您正在从标记中调用“onLoad”函数。如果到那时你的脚本还没有加载,那么这个函数确实会抛出一个错误。

更好的方法是在窗口中添加一个事件侦听器,并在触发 onload 时运行您的脚本。

请参阅Add event handler for body.onload by javascript within <body> part 了解更多信息。

【讨论】:

    【解决方案2】:

    也许 onLoad 函数不在调用它的同一范围内。谁在调用“onLoad”函数?

    【讨论】:

    • 您是否将那段代码包装在
    • 是的,它包含在脚本标签中。
    • 它应该可以工作......这正是你想要的docs.phonegap.com/en/4.0.0/cordova_events_events.md.html
    • 这正是我所拥有的。从字面上看,唯一的区别是我在 onDeviceReady 中有代码,而不是空的。
    • 你能把你的代码发给我吗?也许我可以更好地帮助你
    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2019-01-22
    • 2019-12-31
    • 2020-05-24
    相关资源
    最近更新 更多