我正在尝试使用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 = "https://www.example.com/sectiontitle"'>hyperlinktext</a>");
document.getElementsByTagName('body')[0].innerHTML = replacedString;
}
</script>
我很感激你的建议。
谢谢!
答案 0 :(得分:0)
链接元素href值通常作为HTML源中的引用字符串提供。但在实践中,并且没有建议你这样做,引号可以省略。因此,HTML解析器将在href值周围删除引号,如果它在那里看到它们。 HTML解析器还替换了像&amp; quot;这样的字符实体。与实体所代表的角色 - 在这种情况下是双引号。
解析器尝试删除href
属性周围的引号并替换字符实体的顺序决定了结果。您已经充分证明了首先删除实际引号。 href
值在字符实体替换后最终在 中使用引号 ,被视为相对引用并生成您发布的相对链接。
因此从字符串中取出字符实体。使用反斜杠转义JavaScript中的引号,或在单引号字符串中使用双引号。