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