Javascript Android Webview:未定义控制台
我试图在Android Webview中打开带有一些Java脚本的html,在实现WebChromeClient的OnConsolleMessage后出现以下错误:Javascript Android Webview:未定义控制台,javascript,android,webview,android-webview,Javascript,Android,Webview,Android Webview,我试图在Android Webview中打开带有一些Java脚本的html,在实现WebChromeClient的OnConsolleMessage后出现以下错误: Uncaught ReferenceError: console is not defined -- From line 10 of file:///storage/sdcard0/TargetApp/e184bae3-5824-4e23-a26e-820ce6d32aa2/pres/fce4da510de8431bB3eeD5bd
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,它可以工作您是否尝试过这个控制台=控制台|{log:function(){},debug:function(){};还没有,我会尝试一些不同的东西,但问题的关键是为什么这个简单的条件可能是错误的。事实上,它适用于我测试过的每个webview或浏览器,除非android webview