2011-10-03 3 views
0

다음 예제에서는 링크 URL이 페이지의 맨 위에 나타나고 링크 영역이 다음과 같이 정확하게 표시되지만 Internet Explorer에서 Test라는 단어를 클릭 할 수 없습니다. 끔찍한 IE 디버깅 도구 (F12). 이것은 다른 모든 브라우저에서 잘 작동합니다 (물론).인터넷 익스플로러에서 하이퍼 링크 영역을 클릭 할 수 없음

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

나는 둥지에 하이퍼 링크 태그 내부 테이블 기술적으로 유효하지 건 알지만 정말 내가 달성하기 위해 원하는 것을 할 수있는 유일한 실용적인 방법, 그리고이 모든 브라우저에서 잘 작동하는 방법을보고있다 IE에서 작동하도록하는 방법이 있습니까?

지금까지 필자는 테이블과 링크에 모두 높이, 너비 및 인라인 블록의 표시 속성을 제공하려고 시도했습니다. 아무도 일한 적이 없다. 감사.

+1

정확히 무엇을하려합니까? 그것이 무엇이든, 이것은 UI 관점에서 그것을하는 방법이 아닙니다 ... – IrishChieftain

+0

나는 같은 페이지에 3 개의 분리 된 링크를 만드는 것을 막으려 고하고 있습니다. 내 테이블에는 2 개의 셀이 있고 왼쪽에는 이미지가 있고 오른쪽에는 제품 제목과 '세부 정보'버튼이 있습니다. 나는 전체 지역이 하나의 연결 고리처럼 행동하기를 원한다. 논리적 인 관점에서, 태그 안의 모든 것을 클릭 할 수 있다는 것은 의미가 있습니다. 기술적 인 측면과 관계없이 FF와 Chrome은 이러한 동작을 허용합니다. – StronglyTyped

+0

아마도 클릭 가능한 행이있는 ListView와 같은 것을 사용할 수 있습니까? 훨씬 깨끗한 마크 업과 원하는 기능을 얻을 수 있습니다. – IrishChieftain

답변

5

"모든 브라우저에서 정상적으로 작동하는 방식을 확인하십시오."라고 말하지만 실제로는 그렇지 않습니다. 일부 브라우저에서 실제로 일어나고있는 일은 실제로 작동하도록 만드는 것입니다.

이 대신 같은 것을 수행

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

해킹, 그러나 더 유효 하나.

당신은 크롤러에 대한 concens이있는 경우 UPDATE, 두 가지 방법이있다.

<link href="/" rel="section" /> 

또는 어떤 링크 rel type 말이 : 또한 문서의 <head>에서 <link> 태그 같은 것을 사용할 수 있습니다

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

: 하나는, 이후 같은 것을 링크를 추가하는 것입니다.

또한 귀하가 질문하신대로 구조화 된 HTML은 사양에 맞지 않습니다. 믿을 수 있고 미래에 작동하는 측면에서 보면 코드가 적합하지 않습니다. 표준을 염두에두고 작성된 코드는보다 안정적으로 작동합니다.

당신의 코멘트를 감안할 때 ANOTHER UPDATE, 여기에 나는이 같은 마크 업을 가정하고,이 구조 할 방법은 다음과 같습니다

<table class="dataTable"> 
    <tr> 
     <td><img></td> 
     <td>Description</td> 
     <td><a href="/" class="details">Details</a></td> 
    </tr> 
</table> 

귀하의 세부 정보 링크가 사용하고있는 링크를 나타내며, 그래서 내가 할 일은 자바 스크립트 (jQuery를 사용하지만 현재 사용중인 라이브러리에 대해 다시 쓸 수 있음)를 추가하는 것입니다.

<script> 
jQuery(function($){ 
    $('table.dataTable').delegate('td', 'click', function(){ 
    $(this).find('a.details').trigger('click'); 
    }); 
}); 
</script> 
+0

내 크롤러가 onclick 링크를 크롤링하지 못할 수 있으므로 내 페이지의 색인이 해제 될 수 있습니다. 나는 또한 그것이 사실이라는 이유로 그것이 "사실이 아니다"는 것에 동의하지 않는다. 그들은 다른 모든 브라우저에서, 그들이 씬의 뒤에 무엇을 할 지에 관계없이 잘 동작합니다. 이것은 IE가 다른 모든 주요 브라우저가하는 것을 수용하지 않는 많은 예제 중 하나입니다. 조언 해 주셔서 감사합니다. – StronglyTyped

+0

귀하의 우려 사항을 해결하기 위해 크롤러에 대한 답변을 업데이트했습니다. – artlung

+0

JavaScript를 사용하는 다른 방법. – artlung

관련 문제