簡體   English   中英

JavaScript / jQuery處理然后替換我HTML內容中的所有鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM