Область гиперссылки не активируется в Internet Explorer - PullRequest
0 голосов
/ 03 октября 2011

В следующем примере слово «Тест» не активируется в Internet Explorer, даже если URL-адрес ссылки отображается в нижней части страницы при наведении курсора, а область ссылки точно отображается в ужасном инструменте отладки IE (F12).Это прекрасно работает во всех других браузерах (конечно).

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

Я знаю, что технически недопустимо вкладывать таблицу в тег гиперссылки, но это действительно единственный практический способделать то, что я хочу сделать, и, увидев, как он работает во всех браузерах, есть ли способ заставить его работать в IE?

До сих пор я пытался дать и таблицу, и ссылку на высоту, width, а также свойство display inline-block.Никто не работал.Спасибо.

1 Ответ

5 голосов
/ 03 октября 2011

Вы говорите: «Посмотрите, как это работает во всех браузерах», но на самом деле это не так. На самом деле в некоторых браузерах происходит то, что они работают, чтобы заставить это работать.

Сделайте что-то вроде этого:

<table onclick="location.href='/'" style="cursor: hand;">
<tr><td>Test</td></tr>
</table>

Также взломать, но более правильный.

UPDATE

Если у вас есть какие-то соображения по поводу сканеров, есть два возможных подхода. Одним из них является добавление ссылки после, что-то вроде:

<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 тип имеет смысл.

Кроме того, 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...