繁体   English   中英

Android Webview:控制台未定义

[英]Android Webview: console is not defined

我正在尝试在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;

/*
* ...
*/

规范说:

在严格模式下,例如,您不能使用未声明的变量。

因此,正确的方法是:

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

唯一仍未解决的问题是,为什么其他浏览器(例如Chrome,Firefox和ios)可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM