我不确定这是否可行,但我正在帮助一个用.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 :(得分:1)
使用JavaScript尝试类似的东西,
var bluePage = document.querySelectorAll("a[href='bluepage.aspx']");
if (bluePage[0]) {
bluePage[0].setAttribute("href", "redpage.aspx");
bluePage[0].innerHTML="Red Page";
}
答案 1 :(得分: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,或者非浏览器代理(如机器人,抓取工具或网络服务)访问过它,那么它将无法工作,这不完美。< / p>