对话框打开时出现奇怪的IE行为

Sha*_*ter 3 jquery internet-explorer cross-browser datatables jquery-ui-dialog

这可能是一个难以回答的问题,因为很难证明问题1.

我正在使用datatables + datatables jEditable,但我已经完全改变(并改进了)代码,这样当用户双击表中的一行时,会打开一个带有表单的jQuery UI对话框,您可以在其中编辑该行.它利用一种形式完成两项任务,即添加和编辑.

这在所有浏览器中都很好用,除了你猜对了:IE.
我发誓,这是迄今为止我见过的IE最奇怪的行为.

当您双击一行时,对话框不会显示,但是当您打开开发工具(F12)时,它突然起作用.

澄清

  1. 用户打开Internet Explorer(在这种情况下是IE9,但它也发生在早期的IE9上)
  2. 用户导航内部网
  3. 用户双击数据表行.什么都没发生.
  4. 用户打开开发工具(F12)并关闭它
  5. 用户双击数据表行.对话框打开.
  6. 用户关闭选项卡并重新打开并再次导航到那里.一切正常.
  7. 用户关闭Internet Explorer
  8. 重复步骤1到8

令人讨厌的是我无法调试问题,因为它一打开调试器就会消失......!

我原本以为问题是因为IE上的Intranet站点默认在兼容性视图中打开,所以我改变了这个设置,希望能解决问题.
它没.

此外,一旦打开开发工具,并刷新页面,就没有错误或任何错误代码的迹象.

那么......有什么特色?

1代码相当复杂,我不知道我是否可以简化它并进行演示.这是在内联网上完成的,所使用的数据是分类的,所以我不允许/不能直接显示你.

Fre*_*all 5

这可能不是你烦恼的原因.但我之前看过IE的类似行为.罪魁祸首是console.log代码中的流浪者.在window.console开启开发工具之前,IE 不存在,并且window在开发工具关闭后继续存在.如果你有一个流浪console.log在你的代码,它可能会阻止从打开对话框的consoleundefined,然后你开始尝试调试它的那一刻.

如果你想测试这种可能性但不想追捕流浪,只需将下面的内容添加到文档的顶部:

if (!window.console) {
  this.console = {
    log: $.noop
  };
}
Run Code Online (Sandbox Code Playgroud)