phonegap build Uncaught ReferenceError: onLoad is not defined

Posted

技术标签:

【中文标题】phonegap 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 中有内容安全策略元标记吗? 【参考方案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 中有代码,而不是空的。 你能把你的代码发给我吗?也许我可以更好地帮助你

以上是关于phonegap build Uncaught ReferenceError: onLoad is not defined的主要内容,如果未能解决你的问题,请参考以下文章

App phonegap

Phonegap build 本地发布版本(不含Phonegap Build)

PhoneGap.Build 示例 com.facebook.sdk 错误 2

reactjs - 在 npm run build 得到 Uncaught TypeError: Super expression must be null or a function [重复]

Urban Airship phonegap 3.5 with Phonegap Build

如何在 build.phonegap.com 中添加插件