每次出现时都使相同的单词链接到同一页面?

时间:2016-01-29 22:47:29

标签: javascript html css

是否可以通过HTML,CSS或JavaScript创建一种情况,即每次在您的网站上提及某个字词时,它都链接到同一页面?

例如,单词“Test”:

  

这是一个测试段落。我想将Test一词链接到一个   每次出现时都会显示特定页面。

在上一段中,“Test”一词会在每次出现时链接到“test.html”,而不会出现任何链接html或任何需要的手动工作。这可能吗?或者,通过为它分配一个带有类的div标签?

出于我的目的,它需要在没有服务器的情况下在客户端工作。

2 个答案:

答案 0 :(得分:1)

您只想替换文本节点,而不是整个DOM,或者如果替换有效HTML标记的单词(例如form),则可能会导致错误。这是一个递归替换,它尊重HTML标记,只替换实际文本:

function walkTheDOM(node, func)
{
  func(node);
  node = node.firstChild;
  while (node)
  {
    walkTheDOM(node, func);
    node = node.nextSibling;
  }
}

function supplant(word, link)
{
    return function (node) {
        if (node.nodeType === 2) // only if the node contains actual text
        {
            node.innerHTML = node.innerHTML.replace(word, "<a href=\"" + link + ">" + word + "</a>");
        }
    };
}

您可以按如下方式使用它:

walkTheDOM(document.body, supplant("form", "https://en.wikipedia.org/wiki/Form"));

答案 1 :(得分:0)

基于您提供的信息的简短回答可能是:

&#13;
&#13;
document.body.innerHTML = document.body.innerHTML.replace(/Test/g, '<a href="test.html">Test</a>');
&#13;
This is a Test paragraph. I would like the word Test to link to a specific page every time it appears.
&#13;
&#13;
&#13;