fgp*_*x78 115 asp.net jquery html-table internet-explorer-9
我的网站始终与IE8,IE7,FF,Chrome和Safari一起顺利运行.现在我在IE9上测试它,我遇到了一个奇怪的问题:在某些页面中,某些表格数据呈现错误.
HTML源代码是正确的,并且每次刷新页面时给出问题的行都会改变(说实话,问题本身只出现在一些刷新中,而不是全部).

使用IE的F12工具,表格结构显示正确,TD包含M08000007448后应该没有空的TD,但它仍然像这样呈现.

此外,如果我使用F12工具,使用工具栏中的"通过单击选择元素"工具,我尝试单击M08000007448和19之间的空白区域,它选择TR,而不是"隐藏的td".
我在应用程序的其他表中也有这个表呈现问题,有没有遇到类似这样的事情?它只发生在IE9 :(
我不知道它是否重要,但页面是用ASPNET(webforms)制作的,并使用Jquery和其他一些JS插件.
我试图保存页面(带图像)并在IE9本地打开它,但问题永远不会发生.(当然我检查了所有的表结构,没关系.标题和所有行都有相同数量的TD,必要时有正确数量的colspan).
Sha*_*son 72
我也有完全相同的问题.你可能想读这个https://connect.microsoft.com/IE/feedback/details/649949/innerhtml-formatting-issues-on-very-large-tables
你可以通过使用javascript删除td之间的空间如果从ajax返回你的html,然后从响应,你用它取代它
response_html = response_html.replace(/td>\s+<td/g,'td><td');
$('#table').html(response_html);
Run Code Online (Sandbox Code Playgroud)
小智 33
我使用jquery模板填充表时遇到了同样的问题.我<td>只在IE9中对较大的数据集(300+)保持"幽灵" .这些<td>会将外柱推到我桌子的边界之外.
我通过做一些非常愚蠢的事来解决这个问 删除<td>开始和结束标记之间的所有空格,并左对齐与我的表有关的HTML标记.基本上,你想要所有你<td> </td>在同一条线上,没有空格.
例:
<table>
<tr class="grid_customer_normal">
<td>${primary}</td>
<td>${secondary}</td>
<td>${phone}</td>
<td>${address}</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
Rav*_*avi 14
@Shanison给出的解决方案只能部分帮助,但如果任何其他元素之间有空格可以成为表格内容模型的一部分,例如thead,th等,则问题仍然存在.
这是我的领导在工作中设计的更好的正则表达式.
if (jQuery.browser.msie && jQuery.browser.version === '9.0')
{
data = data.replace(/>\s+(?=<\/?(t|c)[hardfob])/gm,'>');
}
Run Code Online (Sandbox Code Playgroud)
覆盖所有表格,标题,colgroup,col,tbody,thead,tfoot,tr,td,th元素.
注意:jQuery.browser在jQuery 1.9中被删除,只能通过jQuery.migrate插件获得.请尝试使用功能检测.
小智 11
我通过删除空格修复了这个问题:
var expr = new RegExp('>[ \t\r\n\v\f]*<', 'g');
var response_html_fixed = data.replace(expr, '><'); //A disgusting hack for ie9. Removes space between open and close <td> tags
$('#treegrid-data').replaceWith(response_html_fixed);
Run Code Online (Sandbox Code Playgroud)
IE 博客今天提到了一个名为 Compat Inspector 脚本的新工具,可以帮助解决 IE 9 渲染不兼容性问题。它可能有助于解决您的问题。
http://blogs.msdn.com/b/ie/archive/2011/04/27/ie9-compat-inspector.aspx