自动添加到网页网址的网址

时间:2017-03-30 21:06:33

标签: javascript innerhtml getelementsbytagname

我正在尝试使用getElementsByTagName来替换我网站正文部分中的一些文本,并将其替换为超链接。问题是我没有给我指定的链接,而是https://www.example.com/section1/https://www.example.com/section2”。

这是我的代码:

<script>
window.onload = function() {
    var string = document.getElementsByTagName('body')[0].innerHTML;
    var replacedString = string.replace(/msAb/gi,"<a href = &quot;https://www.example.com/sectiontitle&quot'>hyperlinktext</a>");
    document.getElementsByTagName('body')[0].innerHTML = replacedString;
}
</script>

我很感激你的建议。

谢谢!

1 个答案:

答案 0 :(得分:0)

链接元素href值通常作为HTML源中的引用字符串提供。但在实践中,并且没有建议你这样做,引号可以省略。因此,HTML解析器将在href值周围删除引号,如果它在那里看到它们。 HTML解析器还替换了像&amp; quot;这样的字符实体。与实体所代表的角色 - 在这种情况下是双引号。

解析器尝试删除href属性周围的引号并替换字符实体的顺序决定了结果。您已经充分证明了首先删除实际引号。 href值在字符实体替换后最终在 中使用引号 ,被视为相对引用并生成您发布的相对链接。

因此从字符串中取出字符实体。使用反斜杠转义JavaScript中的引号,或在单引号字符串中使用双引号。