javascript - Android 网页 View : console is not defined

标签 javascript android webview android-webview

我尝试在 Android Webview 中打开带有一些 javascript 的 html,并在实现我的 WebChromeClient 的 onConsoleMessage 后收到以下错误:

Uncaught ReferenceError: console is not defined -- From line 10 of file:///storage/sdcard0/TargetApp/e184bae3-5824-4e23-a26e-820ce6d32aa2/pres/fce4da510de8431bB3eeD5bdbd1c695d/fce4da510de8431bB3eeD5bdbd1c695d/html/js/target/util_Q_3bb82a6eabd3339d91ca15cb4fd6685c.js

遵循我文件的第 10 行:

console = console ? console : { log : function() {}, debug : function() {}}; 

奇怪的是,相同的代码在浏览器和 IOS webview 上完美运行。

有人可以给我一些关于正在发生的事情的提示吗?

最佳答案

抱歉大家,不幸的是我的代码示例不完整。问题是 javascript 设置了严格模式

(function($) {

    'use strict';

    /* 
     * 
     */
    jQuery.ajaxSettings.traditional = true;

    console = console ? console : { log : function() {}, debug : function() {}}; 

    window.c = console;

/*
* ...
*/

规范说明:

With strict mode, you can not, for example, use undeclared variables.

所以,正确的做法是:

var console = window.console = window.console ? window.console : { log : function() {}, debug : function() {}};

唯一仍然悬而未决的问题是为什么其他浏览器(例如 Chrome、Firefox 和 ios)它也能工作

关于javascript - Android 网页 View : console is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530894/

相关文章:

android - 网站(静态或动态)转换为 Android 应用程序

javascript - 处理 Promise ES6 Nodejs 中的错误

javascript - 获取json ajax php表单进行远程工作

c# - 同一应用程序中的 xamarin android 支持库 v7 和 v13

android - 使用 fragment 从 Parse.com 获取数据

android - 如何在 Android 的 WebView 中打开本地 PDF 文件?

javascript - 解析通过 JavaScript 从 AJAX 请求获得的 JSON 响应

javascript - 如何在 Google 的收件箱页面中重新创建页面滚动行为?

android - 使用 Ubuntu 14.04 在 ASUS ZenWatch 2 上调试 Android Wear 应用程序

java - Android - loadDataWithBaseURL