2010-03-15 67 views
0

我在查找如何做到這一點時遇到了一些麻煩。用其他鏈接替代HTML中檢測到的鏈接使用JS

這裏是場景。我的電子商務網站有一個博客,其內容很多,推銷我銷售的產品,審查他們等。博客上99%的帖子都鏈接到他們正在討論的產品。

我將更改我的電子商務系統所在的URL。因此,我的博客最終會將人員發送到很多404頁面。

我的想法是能夠包括一個JS文件,它將在加載時掃描文檔中的現有鏈接,然後,如果找到,將它們與現在正確的文件進行交換。

我希望這是有道理的。

乾杯, 吉姆


+1

這可能是一個壞主意,因爲很多時候,用戶將禁用JavaScript。 – Warty 2010-03-15 19:58:40

+0

CTRL + F http://oldurl.com/link/link/link - 用http://newurl.com/link/link/link取代 - 我應該得到這樣的火焰,但它可能只是做你需要的東西xD顯然無限量的情況下,它會出錯^^ – Sphvn 2010-03-16 02:06:14

回答

5

這是非常簡單的jQuery中做的;但在多個層面上是一個壞主意。首先是ItzWarty說,禁用JavaScript的用戶仍然會獲得404。

另一個是,像GoogleBot這樣的網絡蜘蛛不執行JavaScript,所以他們會看到404太毀了你的SEO;當將內容遷移到新的URL時,如果您有興趣保留搜索排名,您應該301將舊URL重新定向(永久移動)到新位置。

+1

將舊鏈接重定向到服務器端的新URL是更好的方法。如果一切都在你的最後完成(服務器端),你可以確定重定向正確發生,而不必擔心Javascript是否在用戶端運行。 – bta 2010-03-15 20:18:11

+0

我喜歡你提出了網絡蜘蛛和搜索引擎優化。我根本沒有想到這一點,並與一個營利性網站,這是一個關鍵因素。 – 2010-03-16 19:50:44

3

如果您要創建JavaScript重定向,爲什麼不創建批處理來更新所有這些文件/鏈接。

我假設這些是靜態文本文件,如果它是數據庫驅動它也是可以實現的。

0

在您的博客頁面中,將這段簡單的代碼粘貼到標籤前的頁面末尾。

<script type="text/javascript"> 
    var collection = document.getElementsByTagName('a'), 
    old_url = "http://www.myoldurl.com", //place here you old url 
    new_url = "http://www.mynewurl.com", //place here your new url 
    i, len = collection.length; 
    for(i = 0; i < len; ++i) 
     if(collection[i].href) 
     collection[i].href = collection[i].href.replace(old_url, new_url); 
</script> 

由於您使用的是博客,你只需要一次堅守這段代碼對所有在博客中這樣的代碼將在每個頁面上插入只是befor醚:標籤的佈局/模板頁面。