Использование jQuery на сайтах, таких как Gmail или Facebook - PullRequest
3 голосов
/ 06 февраля 2011

Я пытаюсь авторизовать пользователей на сайтах автоматически, учитывая их имя пользователя и пароль.Для этого я использую расширение Chrome, где каждая страница будет загружать мой скрипт контента, который попытается выяснить, где находятся поля имени пользователя и пароля, а затем отправит.

Скрипт контента загружает jQuery и находитЯ делаю что-то вроде этого:

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

Это обычно работает, но на сайтах, таких как Facebook или Gmail, это не работает (хотя это не должно).Я подозреваю, что это потому, что они уже используют какую-то внутреннюю версию jQuery, которая не делает то же самое.

Как мне это исправить?Возможно, изменение знака доллара jQuery, который я загружаю, на что-то другое исправит это, так как это не будет конфликтовать с внутренней версией jQuery.Это возможно?

Ответы [ 4 ]

3 голосов
/ 06 февраля 2011

jQuery.noConflict ()

var $j = jQuery.noConflict();
// Use jQuery via $j(...)
$j(document).ready(function(){
   $j("div").hide();
});
1 голос
/ 06 февраля 2011

Проверка http://code.google.com/chrome/extensions/content_scripts.html#execution-environment.

Изолированные миры позволяют каждому скрипту контента вносить изменения в свою среду JavaScript, не беспокоясь о конфликте со страницей или другими скриптами контента.Например, скрипт контента может включать JQuery v1, а страница может включать JQuery v2, и они не будут конфликтовать друг с другом.

Я использовал JQuery на странице входа в gmail и yahoo через контентСценарий без проблем.В gmail идентификатором пароля является «Passwd».Итак, $("#Passwd") должно работать.Интересно, почему $("input[type=password]") не работает.Это также должно работать.

0 голосов
/ 06 февраля 2011

В jQuery 1.5 вы можете использовать новую функцию sub () .

$$ = jQuery.sub();
$$("input[type=password]") ..... your code here ...
0 голосов
/ 06 февраля 2011

Быстрый взгляд на основной (минимизированный) сценарий Facebook, по-видимому, показывает, что они используют jQuery для внутреннего использования. По крайней мере, в скрипте есть функция с именем $, так что да, использование другого имени для вашего конкретного объекта jQuery было бы хорошей идеей. Это также предотвратит подобные проблемы в будущем.

Пост Джейси показывает, как изменить переменную jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...