2014-09-23 5 views
0

예 : 특정 URL에 내 선택의 단어를 연결하려면 전체 웹 사이트에서 "염소"라는 단어를 "http://goat.com"으로 연결하고 싶습니다. 따라서 모든 "염소"는 웹 사이트에서 해당 URL로 바로 연결됩니다.전체 웹 사이트의 특정 단어에 URL 추가

저는 wordpress를 사용하고 있으며 아직 플러그인을 찾지 못했습니다. 이 솔루션을 얻을 수 있다면이 기능을위한 플러그인을 만들 가능성이 높습니다.

한 페이지에 한 단어를 타겟팅하는 방법을 알고 있습니다. 그러나 나는 그것이 모든 페이지와 그 페이지의 모든 단어 (나는 이것을 위해 JavaScript를 사용했다)에 걸쳐 있기를 원한다.

답변

1

여기에 엉터리 솔루션입니다하지만없는 것보다는 낫다 :

가 나는 것을 붙여 그것을 수정 복사 있도록 전체 페이지에 걸쳐 세계를 검색하는 몇 가지 코드 here를 발견했다.

replaceWord 변수에는 word와 동일한 문자열을 사용할 수 없습니다. 그렇지 않으면 무한 루프가됩니다.

+0

정말 감사합니다. 이것은 내가 찾고 있었던 바로 그 것이었다! 훌륭한! – Philip

+0

동시에 여러 함수를 실행하는 데 문제가 있습니다. 나는 함수에 별도의 이름을 주었지만 문제는 여전히 계속되었습니다. – Philip

+0

대기열 및 curr 변수가 전역으로 정의되어 있지 않은지 (함수 범위 내에서 정의 할 수 있는지) 확인하면 제대로 작동해야한다고 생각합니다. – Mandera

4

이와 비슷한 기능이 도움이 될 수 있습니다.

function replaceWithUri(textToReplace, element){ 
    element.innerHTML = element.innerHTML.replace(textToReplace, '<a href="http://www.' + textToReplace + '.com" >' + textToReplace + '</a>'); 
} 

replaceWithUri('goat', document.getElementsByTagName('body')[0]); 
+0

내가 자바 스크립트와 많은 경험이 없어, 난 당신의 스크립트를 이해하지만이 버튼 또는 무언가에 사용되는 후이 기능은 단지 해고되지 않을 것이다되고? 페이지로드시 어떻게 실행합니까? – Philip

+0

두 번째 부분 replaceWithUri ('goat', document.getElementsByTagName ('body') [0])); 은 페이지의 본문 요소에서 "염소"문자열에 대한 함수를 실행하므로 사용자에게 적합하도록 조정할 수 있습니다. –

1

var word = " goat", 
 
    replaceWord = " <a href = 'http://goat.com'>goat</a>", 
 
    queue = [document.body], 
 
    curr 
 
; 
 
while (curr = queue.pop()) { 
 
    if (!curr.textContent.match(word)) continue; 
 
    for (var i = 0; i < curr.childNodes.length; ++i) { 
 
     switch (curr.childNodes[i].nodeType) { 
 
      case Node.TEXT_NODE : // 3 
 
       if (curr.childNodes[i].textContent.match(word)) { 
 
        curr.innerHTML = curr.innerHTML.replace(word,replaceWord); 
 
       } 
 
       break; 
 
      case Node.ELEMENT_NODE : // 1 
 
       queue.push(curr.childNodes[i]); 
 
       break; 
 
     } 
 
    } 
 
}
Hello goat 
 

 
<div>Look a goat</div>

집중 비트 자원이 될 수 있으며 replaceWord는 단어와 같은 문자열을 포함 할 수 없습니다 그렇지 않으면 루프가 영원히 것이다.
document.onload = function() { 
 
    var word = " goat", 
 
     replaceWord = " <a href = 'http://goat.com'>goat</a>"; 
 

 
    while(document.body.innerHTML.indexOf(word) !== -1) { 
 
     document.body.innerHTML = document.body.innerHTML.replace(word,replaceWord); 
 
    } 
 
}
Hello goat 
 

 
<div>Look a goat</div>