2010-07-12 88 views
0

存在任何JavaScript或Objective-C方法以將location.href="MyURL"轉換爲<a href="MyURL"></a> ??將location.href網址轉換爲Anchor鏈接

我有超過200 location.href URL不UIWebViewNavigationTypeLinkClicked工作:-S

感謝大家能幫幫我!

+0

我想你應該澄清你的問題:你有表示爲location.href文本鏈接的HTML文本,你想基本的文本翻譯成標籤?請詳細描述問題,以便我們可以幫助您 – Nick 2010-07-12 17:19:06

+0

我希望我的Javascript(event){location.href = http:// ...}可以被瀏覽器讀取,就像錨鏈接一樣。 這可能嗎? – Obliviux 2010-07-12 21:46:05

+0

讓我們看看:所以你有這個事件,基本上加載該網址,對嗎?你想不是加載頁面,而是顯示該頁面的鏈接?在這種情況下,您可以將函數重寫爲... {document.write(「」); } ...應該顯示鏈接 – Nick 2010-07-13 17:50:58

回答

0
<a href="http://www.myurl.com" id="myAnchor"></a> 

    <script type="text/javascript"> 
     document.getElementById("myAnchor").setAttribute("href", window.location.href); 
     var loc = document.getElementById("myAnchor").getAttribute("href"); 
     var t = document.createTextNode(loc); 
     document.getElementById("myAnchor").appendChild(t); 
    </script> 

下面是這樣做的一種方法:document.getElementById()獲取對錨的ID屬性的引用。 setAttribute()的第二個參數「window.location.href」在當前窗口中抓取對url的引用,並將錨點中的href屬性設置爲this,但是如果你聲明瞭一堆location.href()在你的代碼中,然後將它們作爲一個變量存儲在第一行之前,然後在與我聲明的「loc」相同的那一行引用該變量。變量「loc」聲明一個變量,該變量存儲對剛在上一行中聲明的新創建的href屬性的引用。然後我聲明一個變量「t」,它在DOM中創建一個文本節點,其中來自前一行的href作爲該變量將保存的值。最後,我使用document.getElementById再次獲取「myAnchor」,並將前一行的文本節點追加到它。所以現在我們可以在鏈接中看到鏈接。

 //Also, use a for loop to run this action 200 times and correct all of the hrefs  on your page. 
     <script type="text/javascript"> 
      for (var i=0;i<200;i++){ 
       //run document.getElementById() and .setAttribute, .createTextNode, etc. here 
      } 
     </script> 

工作小提琴:http://jsfiddle.net/1so33q4z/36/

我不會推薦使用document.write();就像在其他人的帖子中提到的那樣,因爲這會導致頁面以DOM不打算寫入的方式工作(寫入序列化文本)。特別是如果你需要糾正其中的200個。看到這個帖子Why is document.write considered a "bad practice"?