当IE开发者工具打开时,JavaScript有什么变化?

当IE开发者工具打开时,JavaScript有什么变化?,javascript,html,ajax,internet-explorer,Javascript,Html,Ajax,Internet Explorer,从运行AJAX应用程序的角度来看,当IE开发者工具打开时,会发生什么变化 我现在正在追踪一些薛定谔虫。它是关于IE中PrimeFaces的下拉列表。它们有时在单击后无法打开,并且在最大化浏览器或取消缩放内容后被“解锁”。因为这些下拉列表是在正常输入的基础上实现的,带有附加的div,我认为是错误地计算了显示下拉列表弹出窗口的位置。我还假设了AJAX错误 但是在打开IE开发者工具之后,很难重现错误。控制台中并没有显示错误,并没有AJAX请求挂起,而且,更重要的是,一切似乎都运行得更好 该错误仅适用于

从运行AJAX应用程序的角度来看,当IE开发者工具打开时,会发生什么变化

我现在正在追踪一些薛定谔虫。它是关于IE中PrimeFaces下拉列表。它们有时在单击后无法打开,并且在最大化浏览器或取消缩放内容后被“解锁”。因为这些下拉列表是在正常输入的基础上实现的,带有附加的div,我认为是错误地计算了显示下拉列表弹出窗口的位置。我还假设了AJAX错误

但是在打开IE开发者工具之后,很难重现错误。控制台中并没有显示错误,并没有AJAX请求挂起,而且,更重要的是,一切似乎都运行得更好

该错误仅适用于IE,因此开发人员工具是调试该错误的唯一方法。然而,当它们被打开时,观测似乎以某种方式改变了状态,就像在量子力学中一样

所以,我需要知道,打开那些开发人员工具可以改变什么,从而防止bug出现

--编辑--
它与控制台日志无关。这是计算不可见元素大小的问题。通过在正文中添加滚动条,问题得以解决。然而,问题是开放的,IE开发者工具是如何影响这些计算的。

如果您真的想始终包括使用
控制台,我建议使用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);
(功能(b){
var a=0;
var c=函数(){};
变量d=[“日志”、“断言”、“清除”、“计数”、“调试”、“目录”、“dirxml”、“错误”、“异常”、“组”、“组折叠”、“组结束”、“信息”、“配置文件”、“配置文件结束”、“表”、“时间”、“时间戳”、“跟踪”、“警告”];
b、 console=b.console |{};

对于(;aDo,您有一个实例?您使用的是哪个版本的IE?您是否设置了任何断点?您的脚本中是否有任何控制台输出(
console.info(somevar)
)?当开发者工具未打开时,这会导致IE中出现异常。这是量子纠缠,每次你打开控制台,其他开发者的代码就会在银河系的其他地方出现错误。
if(console)
在IE9中给我一个错误(“console未定义”)。
if(window.console)
有效。IE仅在开发工具打开时定义
控制台
对象。在此之前,
控制台
是未定义的。这几乎肯定是问题的原因。最好的答案是删除
控制台
代码,除非您专门使用它。除此之外,它不应该有任何其他区别。(参考资料:这里是赢家答案)@lechlukasz是的,但有人说他们在使用
if(控制台)
时出错,这是您实际拥有的(不是这个)。上面的代码使用了不同的路径。但似乎很确定问题出在
控制台上。完全关闭IE,然后用给你带来问题的原始代码打开备份。根本不要打开开发工具,看看你是否仍然遇到问题(你说这是在奇怪的时候开始发生的)。我不确定IE如何处理会话之间的缓存,因此如果您的JS位于外部文件中,您可能希望清除缓存以获得良好的度量。但是,如果使用console,浏览器窗口的最大化将如何解决此问题?