【问题标题】:Search and replace a string with hyperlink搜索并用超链接替换字符串
【发布时间】:2017-09-08 16:31:24
【问题描述】:

我不确定这是否可行,但我正在帮助一个使用 .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 替换文本有任何其他想法吗?

【问题讨论】:

  • 您的用例似乎有点不靠谱。如果您是一个应该被合法允许编辑站点的团队,那么您应该有权访问源代码。不是“编译成 .aspx”,而是从中生成的。
  • find and replace string的可能重复
  • 保罗,这里已经没有团队了。没有人在管理该网站,他们希望我看看它。在我看来,它需要被丢弃,但我现在对此无能为力。是的,我对.aspx 一无所知。我是一个 Python 人。大声笑

标签: javascript css


【解决方案1】:

用 JavaScript 试试这样的东西,

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

【讨论】:

    【解决方案2】:

    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,或者它被非浏览器代理(如机器人、爬虫或网络服务)访问,它也不会工作,这并不完美。

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 2020-01-06
      • 2015-04-11
      • 2023-01-07
      • 2010-11-14
      • 1970-01-01
      相关资源
      最近更新 更多