2010-07-12 89 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"?