2013-07-30 3 views
0

Disqus 주석이있는 페이지에 대한 링크가 포함 된 웹 페이지를 설정하려고합니다. 링크 that Disqus provides에 댓글 수를 추가하는 방법에 대한 구체적인 지침이 있지만별로 좋지 않습니다. <a> 요소를 사용하는 것으로 제한되며 하이퍼 링크 텍스트가 새 텍스트로 바뀝니다. 나는 내 사이트에 다음과 같은 하이퍼 링크를 만드는 경우해당 텍스트에 따라 하이퍼 링크의 클래스를 변경하십시오.

그래서 : 페이지가로드 한 후

<a href="http://mysite.com/posts/1234#disqus_thread">linktext</a> 

, 그것은 다음과 같습니다

<a class="link-processed" href="http://mysite.com/posts/1234#disqus_thread"> 
    (1 and 0) 
</a> 

(즉주의, 기본적으로 교체 텍스트는 "1 개의 주석과 0 반응"이 될 것이지만 괄호 안에 숫자 만 반환하도록 기본 텍스트를 수정했습니다.)

하이퍼 링크 텍스트가 "(0과 0)"이면 링크를 숨 깁니다. 그것이 다른 것이라면 링크의 텍스트를 이미지 링크 (작은 말풍선 또는 이와 유사한 것)로 대체하고 싶습니다.

나는이 방법이 몇 가지 클래스를 사용하는 것일 수 있다고 생각합니다. . 기본적으로 첫 번째 클래스 (hidelink)를 적용하고 자바 스크립트를 사용하여 두 번째 클래스를 <a> 요소에 적용합니다.

그러나 지금은 붙어 있습니다. Javascript가 내 기본 도메인이 아닙니다. 그래도이 일은 간단해야 할 것 같네요?

답변

0

브라우저 요구 사항은 무엇입니까? 당신이 jQuery를 사용하는 경우, 또는

var elems = document.querySelectorAll('.link-processed'); 
for(var i = 0, size = elems.length; i < size; i++) 
{ 
    if(elems[i].innerText === "(0 and 0)") 
    { 
     //0 and 0. Do something 
    } 
} 

을 : 당신이 IE8 + (또는 대부분의 다른 브라우저)를 사용하는 경우는 텍스트가 조건에 일치하는 경우 모든 처리 링크를 얻을 후 확인 querySelectorAll 또는 getElementsByClassName을 사용할 수 있습니다 단순히 의사 클래스 :contains를 사용하여, "0 0"을 포함하는 모든 요소를 ​​선택할 수 있습니다 : 우리가 알고 있기 때문에

$("a:contains('0 and 0')") 
+0

나는 JQuery와 제안을 살펴 보겠습니다 사이트에 그. – dylanT

+0

좋아, jQuery를 시도했다. 그것은 다른 페이지 요소에서 작동하지만 대상 요소에서는 작동하지 않습니다. 왜냐하면 jQuery 호출 후에 Disqus에 의해 실행되는 다른 자바 스크립트가 실행되기 때문입니다. 마지막으로 (또는 최소한 다른 코드 뒤에) jQuery 호출을 강제로 호출 할 수있는 방법이 있습니까? – dylanT

+0

모든 OOTB DisQus 코드가 실행되기 때문에 "지연"메서드를 사용할 수 있다고 생각했습니다. 비동기. 잠깐 동안 그것으로 주변에 비웃고, 그 후에 나의 생활을 매우 쉽게하기 위하여 javascript를 기본적으로 다시 썼다. 위의 제안은 Disqus javascript의 비동기 특성 때문에 내 상황에서는 작동하지 않지만이 문제를 해결할 때 문제는 부적절합니다. – dylanT

관련 문제