2016-01-29 62 views
2

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

例如,单词 “测试”:

这是一个试验段。我希望Test这个词在每次出现时链接到一个 特定页面。

在上面的段落中,“测试”会链接到“test.html的”似乎没有出现在其周围或所需的任何手工作业的任何链接HTML每次。这可能吗?或者,也可以通过为类指定一个div标签?

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

+7

检查:http://stackoverflow.com/questions/17866866/how-to-turn-keyword-on-a-site-into-links-with-jquery – Math

+0

你可以硬编码它,具体取决于有多少测试实例。您也可以使用JavaScript将锚点附加到单词的所有实例。您应该尝试首先提出自己的解决方案。 – Wold

+0

我需要一个服务器,但jQuery,不是吗?这不适用于我。 – StarDart

回答

0

根据你提供的可能是这个信息的简短回答:

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

+0

谁降低了这个?似乎是一个有效的解决方案 – Aziz

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"));