在下面的示例中,在Internet Explorer中无法单击“测试”一词,即使链接URL在页面底部悬停时显示,并且链接的区域在可怕的IE调试工具中准确表示(F12 )。这在所有其他浏览器中都可以正常工作(当然)。
<a href="/"><table><tr><td>Test</td></tr></table></a>
我知道在超链接标签中嵌套表在技术上并不合适,但它确实是我想要完成的唯一实用方法,并且看到它在所有浏览器中如何正常工作,是否有办法获得它在IE工作?
到目前为止,我已尝试同时为表和链接提供高度,宽度以及内联块的显示属性。没有人工作过。感谢。
答案 0 :(得分:5)
你说“看看它在所有浏览器中如何正常工作” - 但事实并非如此。在某些浏览器中实际发生的是他们正在努力使其发挥作用。
做这样的事情:
<table onclick="location.href='/'" style="cursor: hand;">
<tr><td>Test</td></tr>
</table>
也是一个黑客,但更有效。
<强>更新强>
如果您对爬虫有所了解,有两种可能的方法。一种是在之后添加一个链接,例如:
<table onclick="location.href='/'" style="cursor: hand;">
<tr><td>Test</td></tr>
</table>
<a href="/" style="display:none;">Test</a>
您还可以在文档的<link>
中使用<head>
标记,例如:
<link href="/" rel="section" />
或任何链接rel
type都有意义。
此外,根据规范,您在问题中的HTML结构无效。就可靠和未来的工作而言,您的代码不符合条件。更加注重标准的代码将更加可靠地工作。
另一个更新
鉴于你的评论,这里是我如何构建这个,假设这样的标记:
<table class="dataTable">
<tr>
<td><img></td>
<td>Description</td>
<td><a href="/" class="details">Details</a></td>
</tr>
</table>
您的详细信息链接代表您正在使用的链接,因此我要做的是添加这一点JavaScript(使用jQuery,但可以为您当前使用的任何库重写:
<script>
jQuery(function($){
$('table.dataTable').delegate('td', 'click', function(){
$(this).find('a.details').trigger('click');
});
});
</script>