2011-10-07 2 views
0

기본적으로 사람들이 웹 사이트에 올릴 수있는 외부 호스팅 .js 파일 인 링크 베이트를 만들고 있습니다. 첨부 된 HTML 링크를 사용하여 위젯을 첨부하고 싶습니다. 그러나 위젯이 링크가 있는지 감지 할 수 있기를 바랍니다. 즉.js 파일의 자바 스크립트 부모 HTML에서 링크 존재 여부를 감지합니다.

&lt;script src="http://domain.com/foo.js">&lt;/script><br /> 
by &lt;a href="http://domain.com">My Site&lt;/a> &lt;-- detect this is here 

문제점은 내 위젯을 배치 할 사이트를 모른다는 것입니다.

어떤 아이디어가 있습니까?

+0

해당 링크는 'display : none'을 사용하여 쉽게 숨길 수 있습니다. "링크 미끼 (link bait)"를 실제로 원한다면 코드의 활성 부분 근처에 작은 링크를 추가하는 것을 고려하십시오. 다른 사람이 내 기능을 좋아하면 사이트를 방문 할 수 있습니다. –

답변

0
var l = document.links, myLinkTest = false; 
var linkcount = l.length; 
while(linkcount > 0 && !myLinkTest) { 
    if(l[linkcount-1].href == "http://domain.com"){myLinkTest = true;} 
    linkcount --; 
} 
var widget = function(){ 
    if(myLinkTest){ 
    //do stuff 
    } 
}(); 

페이지의 모든 링크를 테스트하고 링크가 발견되면 스크립트 기능 만 실행 하시겠습니까?

+0

이것을 시도하고 dostuff를 document.write ('it works')로 변경했습니다. 그러나 그것은 성공을보고하지 않습니다. – trooperbill

0

모든 앵커 요소를 검색하여 해당 href가있는 앵커가 있는지 확인하거나 다른 기준으로 확인할 수 있습니다.

var isMyLinkPresent = function() { 
    var anchors = document.getElementsByTagName('a'); 
    for (i = 0; i < anchors.length; i++) { 
     if(anchors[i].attr('href') === "http://domain.com") { 
      return true; 
     } 
    }; 
    return false; 
} 
//in case you want to notify you own server of the presence, this will send a request to your server for picking up which site actually has the link 
(function() { 
    if (isMyLinkPresent()) { 
     var script = document.createElement('script'); 
     script.attr('src', 'http://domain.com/tellmewhichsitehasit?site=' + window.location.host) 
     document.head.appenChild(script); 
    } 
})(); 

또는 자바 스크립트로 링크를 직접 설정할 수도 있지만 웹 마스터가 사용할 API가 있어야합니다. 예를 들어, 스크립트의 'src'속성에서 매개 변수를 추가 할 수 있습니다. 자바 스크립트를 생성 할 때이를 선택하거나 src를보고 해석 할 수 있습니다.

+0

hi ive는 이것을 시도하고 '원하는 경우에 ...'비트를 삭제하고 true를 반환했습니다. to document.write ('works'); 하지만 그 성공을보고하지 ... 어떤 조언? – trooperbill

+0

실행중인 HTML 문서의 예를 제공 할 수 있습니까? –

관련 문제