Internet Explorer中无法单击超链接区域

Str*_*ped 0 css asp.net internet-explorer hyperlink

在下面的示例中,单词Test在Internet Explorer中无法单击,即使链接URL在页面底部悬停时出现,并且链接的区域在可怕的IE调试工具(F12)中准确表示.这适用于所有其他浏览器(当然).

<a href="/"><table><tr><td>Test</td></tr></table></a>

我知道在超链接标签中嵌套表在技术上并不合适,但它确实是我想要完成的唯一实用方法,并且看到它在所有浏览器中如何正常工作,是否有办法让它在IE浏览器?

到目前为止,我已尝试同时为表和链接提供高度,宽度以及内联块的显示属性.没有人工作过.谢谢.

art*_*ung 5

你说"看看它在所有浏览器中如何正常工作" - 但事实并非如此.在某些浏览器中实际发生的是他们正在努力使其工作.

做这样的事情:

<table onclick="location.href='/'" style="cursor: hand;">
<tr><td>Test</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

也是一个黑客,但更有效.

UPDATE

如果你有关于爬虫的概念,有两种可能的方法.一个是在之后添加一个链接,例如:

<table onclick="location.href='/'" style="cursor: hand;">
<tr><td>Test</td></tr>
</table>
<a href="/" style="display:none;">Test</a>
Run Code Online (Sandbox Code Playgroud)

您还可以在文档中使用<link>标记<head>,例如:

<link href="/" rel="section" />
Run Code Online (Sandbox Code Playgroud)

或者任何链接rel类型都有意义.

此外,根据规范,您在问题中构建的HTML格式无效.就可靠和未来的工作而言,您的代码不符合条件.更加注重标准的代码将更加可靠地工作.

另一个更新

鉴于你的评论,这是我如何构建这个,假设这样的标记:

<table class="dataTable">
    <tr>
       <td><img></td>
       <td>Description</td>
       <td><a href="/" class="details">Details</a></td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

您的详细信息链接代表您正在使用的链接,因此我要做的是添加这一点JavaScript(使用jQuery,但可以为您当前使用的任何库重写:

<script>
jQuery(function($){
  $('table.dataTable').delegate('td', 'click', function(){
    $(this).find('a.details').trigger('click');
  });
});
</script>
Run Code Online (Sandbox Code Playgroud)