2011-10-03 62 views
0

在以下示例中,即使在頁面底部顯示鏈接URL時,單詞Test在Internet Explorer中也無法單擊,並且鏈接的區域在可怕的IE調試工具(F12)。這在所有其他瀏覽器(當然)中都能正常工作。Internet Explorer中的超鏈接區域無法點擊

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

我知道這不是技術上有效嵌套的超鏈接標籤內的表,但它確實做我想要完成的任務的唯一可行辦法,並看到它是如何在所有瀏覽器工作正常,是有辦法讓它在IE中工作?

到目前爲止,我已經嘗試給出表格和鏈接的高度,寬度以及內聯塊的顯示屬性。沒有工作。謝謝。

+1

你究竟想要做什麼?無論如何,這不是從用戶界面的角度來做... – IrishChieftain

+0

我試圖阻止創建3個單獨的鏈接到同一頁面。我的表格中有2個單元格,左邊的單元格包含一個圖像,右邊的單元格包含產品標題和「詳細信息」按鈕。我希望整個地區充當一個鏈接。從邏輯的角度來看,標籤內的所有內容都是可點擊的。無論技術如何,FF和Chrome都允許這種行爲。 – StronglyTyped

+0

也許你可以使用類似ListView的可點擊行的東西?你會得到更清晰的標記和你正在尋找的功能。 – IrishChieftain

回答

5

你說「看它如何在所有瀏覽器中正常工作」 - 但事實並非如此。在某些瀏覽器中實際發生的事情是他們正在努力使其工作。

做這樣的事情,而不是:

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

另外一個黑客,但更有效的一個。

UPDATE

如果您有關於爬蟲concens,有兩種可能的方法。一個是後添加一個鏈接,像這樣:

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

您還可以使用文檔的<head>一個<link>標籤,是這樣的:

<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> 
+0

我對此的擔心是某些抓取工具可能無法抓取onclick鏈接,這會導致我的頁面未被索引。我也不同意這是「不是真的」,因爲這是絕對正確的。它在所有其他瀏覽器中運行良好,無論它們在幕後做什麼。這是許多IE瀏覽器不支持所有其他主流瀏覽器所做的事情的例子之一。謝謝你的建議。 – StronglyTyped

+0

我已經更新了我的答案,以解決您關注的abour抓取工具。 – artlung

+0

另一種使用JavaScript的方法。 – artlung