2017-09-08 103 views
0

我不確定這是否可能,但我正在幫助與一個相當大的網站編譯.aspx 我們想要更改網站上的鏈接,但沒有編輯鏈接文本的實際位置。但是,我可以使用CSS或可能的Javascript來編輯網站。搜索並替換超鏈接的字符串

<li> 
    <a href="otherpages.aspx" target="">Other Pages</a> 
</li> 
<li> 
    <a href="bluepage.aspx" target="">Blue Page</a> 
</li> 

我想要改變鏈接和文字,說藍頁的東西,如紅頁。 例如:

<li> 
    <a href="redpage.aspx" target="">Red Page</a> 
</li> 

是否可以搜索和替換使用的CSS超鏈接的文本?

我已經嘗試創建覆蓋原始文本和鏈接的疊加層,但它不能根據用戶使用的瀏覽器在 頁面上正確定位。 例如:

<div id="cover"></div> 


#cover { 
background: url('../images/cover.png') no-repeat; 
top: 80%; 
margin-left: 0px; 
height: 30px; 
width: 203px; 
position: relative; 
} 

任何人有我怎麼能可能與CSS或JavaScript替換文本任何其他的想法?

+0

您的使用案例似乎有些不可靠。如果您是一個應該被合法允許編輯該網站的團隊,那麼您應該有權訪問源代碼。它不是「編譯成.aspx」,它是從它生成的。 – Paul

+0

[查找並替換字符串]的可能重複(https://stackoverflow.com/questions/5951801/find-and-replace-string) – Tijmen

+0

保羅,這裏再也沒有團隊了。沒有人在管理網站,他們希望我看看它。我認爲它需要被破壞,但我現在無法對此做任何事情。是的,我對.aspx一無所知。我是一個Python人。大聲笑 – Prox

回答

1

嘗試這樣用JavaScript,

var bluePage = document.querySelectorAll("a[href='bluepage.aspx']"); 
if (bluePage[0]) { 
    bluePage[0].setAttribute("href", "redpage.aspx"); 
    bluePage[0].innerHTML="Red Page"; 
} 
0

CSS只會更改鏈接的外觀。 href URI將保持不變,如果用戶點擊鏈接,它們將被帶到舊的鏈接位置。因此,您需要爲此使用Javascript。

按照this answer,你可以做搜索和使用JavaScript像這樣替換:

<script type="text/javascript"> 
function replaceScript() { 
    var toReplace = 'http://google.com'; 
    var replaceWith ='http://yahoo.com'; 
    document.body.innerHTML = document.body.innerHTML.replace(toReplace, replaceWith); 
} 
</script> 

而且你可以在頁面加載時初始化這個功能就像這樣:

<body onload="replaceScript();"> 

應該替換字符串整個頁面。但是,這裏的主要缺點是它只替換頁面加載時的鏈接。保存在服務器上的頁面仍然會有舊的鏈接,這意味着當用戶加載任何頁面時會有一個小的延遲(可能是幾十毫秒到幾十毫秒),因爲腳本需要完成其工作,這需要一點點有點時間。另外,如果用戶在其瀏覽器中禁用了JavaScript,或者非瀏覽器代理(如bot,爬蟲或Web服務)訪問了該功能,則該功能不起作用。