2014-03-07 50 views
-2

我想到的是一個基於標籤內部內容自動填充href屬性的實現。我只能通過javascript表達這一點。在省略href屬性的同時創建「a」標籤會有什麼缺點?

例子:

var links = document.getElementsByTagName("a"); 

for (var i = 0; i < links.length; i++) { 
    var elm = links[i]; 
    var content = elm.innerHTML 
    if (content.indexof("http") !=-1 || content.indexof("www") !=-1) { 
     elm.href = content; 
    } else { 
     elm.href = "#"; 
    } 
} 

當然,這是一個非常基本的,而不是太深思熟慮JavaScript實現,並會導致性能和搜索引擎優化的問題。我在想的更多的是向W3C提出建議,這樣他們就可以規劃一個原生的瀏覽器實現,從而在編碼時節省我們的時間。

我們希望能夠:

  • 代碼的標籤不指定A HREF

    <a>http://google.co.uk/</a> 
    

    結果:

    <a href="http://google.co.uk/">http://google.co.uk/</a> 
    
  • 讓空白鏈接,原型

    <a>Click here</a> 
    

    結果:

    <a href="#">Click here</a> 
    
  • 覆蓋這種行爲通過指定HREF

    <a href="http://google.co.uk/">Click here</a> 
    

    結果:不變。

同時做好拷貝的單調乏味的工作和粘貼相同的URL數百次到HREF屬性,同時創造大量牛逼&銫頁想到這些。我確定我忽略了一些東西。

+1

顯而易見的問題是如果你想要一個沒有'href'的'a'標籤? – Chris

+0

@Chris所以你可以將其設置爲'',然後在需要時填充'href'屬性。 – ntzm

+0

@NatZimmermann:我不確定你在說什麼。我在說你可能想要一個沒有'href'的'a'。上面的命題假設所有的'a'標籤都有一個'href',這不是這樣(除非HTML5中有這個改變)。 – Chris

回答

3

該提案會破壞現有的代碼,因此不太可能會有很多機會被認真考慮。由於各種原因(並且這些元素是有效的),有數百萬(可能是數十億)具有a元素而沒有href屬性的網頁。該提案將使所有這些功能鏈接,改變文件的含義。

也有其他的缺點,但這可能就足夠了。

+0

我同意會打破現有的代碼,但元素和方法一直被棄用。僅僅因爲我們有一個沒有href屬性的標籤並不意味着它是正確的。它被認爲是一個有效的元素,但我看到使用空鏈接的唯一用例是它們是按鈕時,在這種情況下,它應該使用

+0

@VinnyFonseca試圖使div的div規則:訪問,或按鈕:鏈接將沒有任何意義!因爲我們有錨... a:visited,a:link等... –

+0

@AdrianSalazar如果它不是鏈接,請使用帶有所需CSS的按鈕。 「A」標籤用於鏈接。按鈕,按鈕:懸停,按鈕:有效。 –

相關問題