我在幾頁以下網址(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