[英]JavaScript/jQuery manipulate and then replace all links in my HTML content
我正在嘗試編寫一個腳本,該腳本在頁面加載后將所有現有鏈接替換為其他格式的鏈接。
但是,盡管我設法解決了鏈接字符串操縱的問題,但是我仍然停留在如何在頁面上實際替換它的工作上。
我有以下代碼,該代碼從頁面獲取所有鏈接,然后遍歷它們進行正則表達式,以查看它們是否與我的模式匹配,然后從鏈接中提取名稱信息並創建新的鏈接結構-這一切工作。 這是進行替換的下一個階段。
var str;
var fn;
var ln;
var links = document.getElementsByTagName("a");
for(var i=0; i<links.length; i++) {
str = links[i].href.match(/\/Services\/(.*?)\/People\/(.*?(?=\.aspx))/gi);
if (links[i].href.match(/\/Services\/(.*?)\/People\/(.*?(?=\.aspx))/gi)) {
var linkSplit = links[i].href.split("/");
// Get the last one (so the .aspx and then split again).
// Now split again on the .
var fileNameSplit = linkSplit[linkSplit.length-1].split(".");
var nameSplit = fileNameSplit[0].split(/(?=[A-Z])/);
fn = nameSplit[0];
ln = nameSplit[1];
if(nameSplit[2]){
ln += nameSplit[2];
}
// Build replacement string
var replacementUrl = 'https://www.testsite.co.uk/services/people.aspx?fn='+fn+'&sn='+ln;
// Do the actual replacement
links[i].href.replace(links[i].href, replacementUrl);
}
我嘗試了幾種不同的解決方案以使其進行實際替換,.replace,.replaceWith,並且嘗試使用拆分/連接將字符串替換為在此處找到的數組- 使用拆分/連接以用數組替換字符串
var html = document.getElementsByTagName('html')[0];
var block = html.innerHTML;
var replace_str = links[i].href;
var replace_with = replacementUrl;
var rep_block = block.split(replace_str).join(replace_with);
我讀過這些,但是應用相同的邏輯沒有成功:
我該如何解決這個問題?
比這更簡單:
links[i].href = replacementUrl;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.