我在几页以下网址(http://something.com)追加与转向器URL所有HREF链接..如何通过JavaScript
<a href="http://something.com">Home</a>
<a href="index.html">Index</a>
<a href="about.html">About</a>
<a href="contact.php">Contact</a>
<a href="#">Same</a>
<a hre="http://example.com/home.html">New Home</a>
<a href="../services.html">Services</a>
什么,我要的是所有链接转换成...
<a href="http://this.com/?url=http://something.com">Home</a>
<a href="http://this.com/?url=http://something.com/index.html">Index</a>
<a href="http://this.com/?url=http://something.com/about.html">About</a>
<a href="http://this.com/?url=http://something.com/contact.php">Contact</a>
<a href="#">Same</a>
<a hre="http://this.com/?url=http://example.com/home.html">New Home</a>
<a href="../services.html">Services</a>
所以基本上我不想转换"#"
或"../"
这样的链接。
我是JS的noob。
从我的努力,与W3Schools的的帮助..我试图做到: -
<script type="text/javascript">
var url= document.getElementByTagName(a);
var pattern = /..\//g;
var result = pattern.test(url);
if(url.href != "#" || result === "false") {
var nurl = url.replace("http://this.com/?url="+url.href, url.href);
}
</script>
而且我不能做任何事......请帮帮忙,我怎么能修改URL和添加http://this.com/?url=My_web_page_url_here
。
UPDATE 我代替我的JavaScript与
<script type="text/javascript">
var links = document.links;
var i = links.length;
while (i--) {
if (links[i].href.slice(-1) == "#" ||
links[i].getAttribute("href").slice(0, 3) == "../") {
continue;
}
links[i].href = "http://this.com/?url=" + encodeURIComponent(links[i].href);
}
</script>
而且还是所有的URL都在没有追加的方式相同。
正如Alex在下面陈述你的代码不工作的原因是因为它需要坐在一个事件监听器中,监听dom是否准备就绪或窗口已加载。如果在页面准备就绪之前尝试访问元素,则不会发生任何事情。所以如果你从我的答案中拿出'window.onload = function(){...}'部分并且用它包装Alex的答案,那么所有的都应该可以正常工作。您应该阅读使用'window.onload',因为有些东西需要注意... – Pebbl