2013-02-05 10 views
0

첫 번째 요소를 반환합니다.jQuery를 1.9.1 선택은 내가 Google 검색 결과 페이지에서 <em></em><em>에서 속성</em>하면 onMouseDown 태그를 제거 그리스 몽키/Tampermonkey에 대한 userscript을 개발하고 있어요

플러그인은 스크립트가 실행 중임을 나타내며 스크립트는 실행되지만 아무 일도 발생하지 않습니다.

콘솔을 열고 수동으로 시도했지만 선택기가 페이지의 첫 번째 만 선택합니다.

나는 함께 시도했다 :

$("a") 
$("a.l") 
$(".l") 

가 나는 또한 문서의 시작, 문서의 몸과 문서 끝 부분에있는 userscript의 위치를 ​​변경하려고했지만, 결과는 동일합니다 : 만 일치하는 첫 번째 요소가 반환됩니다.

스크립트 코드 :

// ==UserScript== 
// @name  Google onmousedown remove 
// @version 0.1 
// @include  /^https?://[a-z]*\.?google\.[a-z\.]+/search.*/ 
// @require http://code.jquery.com/jquery-1.9.1.min.js 
// @run-at  document-end 
// ==/UserScript== 

$(document).ready(function(){ 
    $("a.l").each(function(){ $(this).removeAttr("onmousedown"); }); 
}); 

문제입니까? 감사.

+0

google이 jquery btw를 실행하고 있지 않다면 문제가 있는지를 잘 모름 –

+0

jQuery는 5 행의 스크립트에 포함되어 있습니다. –

+1

괜찮 으면 좋겠지 만 Google에서 $ ('. l')을 (를) 사용하면 얻을 수 있습니다. 첫 번째 요소 (모든 jquery없이) 그래서 그들은 $ 뭔가를 사용합니다. jQuery.noConflict()를 사용하고 $ –

답변

3

검색 페이지에 콘솔에 $을 입력하면 jQuery에서 정의한 평범한 function (e,t){return new i.fn.init(e,t,u)}과 다른 것을 볼 수 있습니다. 그래서 ...

Google과 같은 것처럼 보이는 것은 자신의 $ 기능을 정의하고 다르게 동작합니다. 가장 간단한 해결책은 $ : jQuery('a.l') 대신 명시 적으로 jQuery을 사용하는 것입니다.

하지만 여기에 jQuery의 트릭이 있습니다. document.ready 대신 jQuery 함수를 호출하고이 함수에 인수 $을 전달하십시오. 그런 다음이 함수 내에서 $jQuery과 같습니다.

jQuery(function ($){ 
    $("a.l").each(function(){ $(this).removeAttr("onmousedown"); }); 
}); 

테스트하지는 않았지만 작동해야합니다.

+0

jQuery를 사용하면 감사합니다! –