3

考虑到很难证明问题1 ,这可能是一个很难回答的问题。

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

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

当你双击一行时,对话框不会出现,但是当你打开开发工具(F12)时,它突然起作用了。

澄清

  1. 用户打开 Internet Explorer(在本例中为 IE9,但它也发生在早期版本上)
  2. 用户浏览 Intranet
  3. 用户双击数据表行。没发生什么事。
  4. 用户打开开发工具 (F12) 并关闭它
  5. 用户双击数据表行。对话框打开。
  6. 用户关闭选项卡并重新打开并再次导航到那里。一切正常。
  7. 用户关闭 Internet Explorer
  8. 重复步骤 1 到 8

我无法调试问题很烦人,因为一旦我打开调试器它就会消失......!

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

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

所以... 怎么了?

1代码比较复杂,不知道能不能把它简化得够多,做个演示。这是在内网上完成的,使用的数据是分类的,所以我也不允许/不能直接给你看。

4

1 回答 1

5

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

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

if (!window.console) {
  this.console = {
    log: $.noop
  };
}
于 2012-05-29T14:34:55.303 回答