将location.href URL转换为Anchor链接

时间:2010-07-12 15:42:58

标签: javascript iphone html uiwebview

存在任何JavaScript或Objective-C方法将location.href="MyURL"转换为<a href="MyURL"></a> ??

我有超过200个location.href网址无法使用UIWebViewNavigationTypeLinkClicked:-S

感谢大家可以帮助我!

1 个答案:

答案 0 :(得分: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”并将前一行的文本节点追加到它。所以现在我们实际上可以看到链接中的URL。

        //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"?