2011-02-06 3 views
3

사용자 이름과 비밀번호가 주어지면 웹 사이트에 자동으로 로그인하려고합니다. 이렇게하려면 Chrome 확장 프로그램을 사용합니다. 모든 페이지에서 사용자 이름과 비밀번호 상자의 위치를 ​​확인한 후 제출할 콘텐츠 스크립트를로드합니다.Gmail 또는 Facebook과 같은 사이트에서 jQuery 사용

$("input[type=password]") OR $(".password") OR $("#password")

이 일반적으로 (비록 그것이 안) 실패 페이스 북이나 Gmail과 같은 사이트에서 만 작동합니다

내용 스크립트는 내가이 라인을 따라 뭔가를 할 jQuery를하고 찾을 수있는 상자를로드합니다. 나는 그들이 동일한 것을하지 않는 jQuery의 내부 버전을 이미 사용하고 있기 때문에 이것이 의심 스럽다.

어떻게 수정합니까? 어쩌면 내가 다른 것으로로드하고있는 jQuery의 달러 기호를 변경하면 jQuery의 내부 버전과 충돌하지 않기 때문에이 문제를 해결할 수 있습니다. 그게 가능하니?

답변

3

jQuery.noConflict()

var $j = jQuery.noConflict(); 
// Use jQuery via $j(...) 
$j(document).ready(function(){ 
    $j("div").hide(); 
}); 
0

페이스 북의 차 (축소 된) 스크립트를 통해 빠른 눈은 내부적으로 jQuery를 사용하는 것이 좋습니다 것 같다. 최소한 스크립트 이름에는 '$'라는 이름의 함수가 있으므로, 특별히 jQuery 객체에 다른 이름을 사용하는 것이 좋습니다. 그것은 또한 미래에 이런 종류의 문제를 예방할 것입니다.

jasie의 글은 jQuery 변수를 변경하는 방법을 보여줍니다.

+0

아니요, 분명히 거기에 jQuery를 사용하지 않습니다.'$'함수는'document.getElementById'의 최소한의 단축 버전입니다. –

+0

그래, 내가 한 모든 일은 '$ ('놀랍지는 않지만 여전히 여전히 영향을 미친다.) – Aatch

0

jQuery 1.5에서는 새로운 sub() 함수를 사용할 수 있습니다.

$$ = jQuery.sub(); 
$$("input[type=password]") ..... your code here ... 
1

체크 http://code.google.com/chrome/extensions/content_scripts.html#execution-environment.

고립 된 세계 각 내용 스크립트가 가 페이지 또는 기타 콘텐츠 스크립트와 충돌에 대한 걱정없이 자바 스크립트 환경을 변경할 수 있습니다. 예를 들어 콘텐트 스크립트는 에 JQuery v1을 포함 할 수 있으며 에는 JQuery v2가 포함될 수 있으며 그들은 서로 충돌하지 않을 수 있습니다.

콘텐츠 스크립트를 통해 Gmail 및 yahoo 로그인 페이지에서 JQuery를 아무 문제없이 사용했습니다. Gmail에서 암호 ID는 "Passwd"입니다. 따라서 $("#Passwd")이 작동해야합니다. 왜 $("input[type=password]")가 작동하지 않는지 궁금합니다. 그것은 또한 작동해야합니다.

+0

자바 스크립트 콘솔에서 jQuery를 사용했기 때문에 텍스트 검색을했다. 콘텐츠 스크립트뿐만 아니라 전체 페이지를위한 파일 – Noam

+1

gmail 로그인이 JQuery를 사용하지 않는 것 같아요. 자바 스크립트 콘솔에서 $()를 사용하면 document.getElementById()로 바뀌는 기본 제공 브라우저 기능이 사용됩니다. – Manish

+0

빌드되지 않았습니다. 브라우저 기능에서, 그러나 웹 사이트가 정의한 것 (본질적으로 당신이 옳았음). –

관련 문제