打开 IE 开发人员工具时 JavaScript 会有什么变化
What is changed for JavaScript when the IE Developers Tools are opened?
从运行 AJAX 应用程序的角度来看,打开 IE 开发人员工具时会有什么变化?
我现在正在追踪一些薛定谔的错误。这是关于IE中PrimeFaces的下拉列表。它们有时在点击后无法打开,并且在最大化浏览器或取消缩放内容后被"解锁"。因为这些下拉菜单是在正常输入的基础上实现的,带有附加的div,我认为这是错误地计算了显示下拉弹出窗口的位置。我也假设了 AJAX 错误。
但是打开IE开发人员工具后,几乎不可能重现该错误。控制台中没有显示错误,没有 AJAX 请求挂起,而且,一切似乎都运行得更多。
该错误仅适用于IE,因此开发人员工具是调试它的唯一方法。然而,当它们被打开时,观察似乎以某种方式改变了状态,就像在量子力学中一样......
所以,我需要知道,打开这些开发人员工具可以改变什么,以防止错误出现?
--编辑--它与console.log
无关.这是计算不可见元素大小的问题。通过在正文中添加卷轴解决了这个问题。但是,问题是悬而未决的,IE开发人员工具如何影响这些计算。
如果你真的想总是包括使用 console
,我建议使用它的 polyfill:
(function(b){
var a=0;
var c=function(){};
var d=["log","assert","clear","count","debug","dir","dirxml","error","exception","group","groupCollapsed","groupEnd","info","profile","profileEnd","table","time","timeEnd","timeStamp","trace","warn"];
b.console=b.console||{};
for(;a<d.length;a++){
b.console[d[a]]=b.console[d[a]]||b.console["log"]||c;
}
})(window);
这是一个缩小的例子,我试图使它变得可读。这是我不久前发现并修改了一些东西。我认为我修改的主要内容是,如果您调用最初不是由浏览器的本机console
实现的方法,它将调用console.log
。如果console.log
不是本机实现的,它只会调用一个空函数。此代码的原始版本不包括此回退到 console.log
。
这将"保证"console
调用不会失败。您可以将 d
变量更改为仅包含您确定将使用的调用,否则会有一些额外的不必要的处理。
- 同时使用回退和 JavaScript.什么是正确的方法
- 简单的Javascript什么都不做,控制台中没有错误
- Javascript:什么是工厂
- JavaScript什么时候初始化变量
- JavaScript:什么是 NaN、Object 或 Primitive
- Javascript 什么是在三元表达式中确保值“true”的最佳方法
- Javascript 什么是参数中的“索引”
- Javascript什么时候打破MVC模式
- Javascript什么是“'+aStringVarible+'"(双引号加单引号)做
- Javascript:什么等于未定义?为什么不't myVar==未定义的工作
- Javascript什么都不做
- Javascript:什么是多级原型层次结构,为什么我们应该避免它
- Javascript:什么's冒号操作符变量名
- JavaScript:什么会崩溃,什么会崩溃
- Javascript:什么查找更快:数组.indexOf vs对象哈希值
- Rails特定于页面的JavaScript:什么是最佳实践?
- Javascript:什么是函数属性,它的意义是什么?
- Javascript什么都不做
- JAVASCRIPT:什么是";这个";关键字在下面的原型模式(Phaser框架)中引用
- JavaScript:什么是“;空隙0”;意思是