Kin*_*rog 28 javascript cross-browser console.log
所有浏览器都支持这个吗?我想输出错误,console.log()
但是想知道这是否支持所有浏览器?
console.log("Error etc");
Run Code Online (Sandbox Code Playgroud)
Aar*_*ver 13
不,并非所有浏览器都支持,console.log
因为它不是标准的一部分,而且是DOM的扩展,因此您不应指望它的存在.为了使您的代码具有弹性,您应该假设它不存在并相应地编码.
Mad*_*aks 12
我过去做过类似的事情:
// Log to native console if possible, alert otherwise
window.console = typeof window.console === 'undefined'
? {log:function(/* polymorphic */){alert(arguments)}}
: window.console;
Run Code Online (Sandbox Code Playgroud)
您可以将它放在JS的"顶部",当您被迫使用不支持的浏览器进行调试时,它可以很好地工作console
,并且不需要您更改已经调用的其他JS源代码console.log
到处都是.当然,除了alert
保持理智之外,你可能还想做些什么......
现在是2015年8月,我认为目前这个问题的答案是:
移动和桌面上的所有主流浏览器都支持console.log.(caniuse)
它不是任何标准的一部分,但它现在是完整的现代浏览器的预期可交付成果.
然而:
如果您需要支持旧的浏览器(IE <10),更多的移动浏览器,或用户运行实验的浏览器,那么它可能是使用填充工具是一个好主意(1,2,3,4),以确保
window.console
存在.它可能无法在所有浏览器上的WebWorkers中使用.(MDN)
在UC浏览器和Opera Mini中,功能将运行,但您将看不到输出.(caniuse)
但对于现在的绝大多数网络用户,我们可以假设console.log
将按预期工作.
制作包装函数:
function log(text) {
if (window.console) {
window.console.log(text);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码将检查函数是否存在,并在不存在的情况下创建虚拟函数.信用:StackOverflow
if (!window.console) window.console = {};
if (!window.console.log) window.console.log = function () { };
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20894 次 |
最近记录: |