2012-05-25 2 views
1

Я пытаюсь создать сценарий автоматического входа в систему для Facebook, а не использовать существующий ранее. Когда я запускаю следующий код в консоли JavaScript обоих Firefox и Chrome как имени пользователя и пароля поля заполняются так, как ожидалось:Facebook-автоответчик JS работает в консоли, но не в сценарии GM

var username = "[email protected]"; 
var password = "password"; 
var f = document.getElementById("login_form"); 
f.elements.namedItem("email").value = username; 
f.elements.namedItem("pass").value = password; 

но когда я запускаю его как Greasemonkey скрипт они не заполнить:

// ==UserScript== 
// @name   Auto Login for FB 
// @namespace  hamsolo474 
// @description AutoLogin 
// @include  https://www.facebook.com 
// ==/UserScript== 
var username = "[email protected]"; 
var password = "password"; 
var f = document.getElementById("login_form"); 
f.elements.namedItem("email").value = username; 
f.elements.namedItem("pass").value = password; 

Я прочитал this link, но это не похоже, чтобы помочь. Это производная от GM-скрипта, который я успешно запускаю на других сайтах, я не понимаю, почему он не работает здесь, любая помощь будет принята с благодарностью!


EDIT:
Я также пробовал альтернативный метод:

var username = "[email protected]"; 
var password = "password"; 
document.getElementsByName("email", "input")[0].value = username; 
document.getElementsByName("pass", "input")[0].value = password; 

как яваскрипт и:

// ==UserScript== 
// @name   Auto Login for FB 
// @namespace  hamsolo474 
// @description AutoLogin 
// @include  https://www.facebook.com 
// ==/UserScript== 
var username = "[email protected]"; 
var password = "password"; 
document.getElementsByName("email", "input")[0].value = username; 
document.getElementsByName("pass", "input")[0].value = password; 

как GM, так же, как мой первый метод он работает в консоли JS для Firefox и Chrome, но не для GM.

ответ

1

Проблема заключается в том, что директива @include установлена ​​неправильно. Использование:

// ==UserScript== 
// @name   Auto Login for FB 
// @namespace  hamsolo474 
// @description AutoLogin 
// @include  http://www.facebook.com/* 
// @include  https://www.facebook.com/* 
// ==/UserScript== 
var username = "[email protected]"; 
var password = "password"; 
var f = document.getElementById("login_form"); 
f.elements.namedItem("email").value = username; 
f.elements.namedItem("pass").value = password; 

Однако: Это всегда плохая идея, чтобы вставить информацию о счете в любой код файла.

Если вы просто хотите упростить доступ к своей учетной записи Facebook, вам будет лучше и безопаснее использовать the Secure Login add-on.

+0

спасибо, что сделал эту работу, да, я просто изучаю, как использовать greasemonkey. Понимание того, почему мой код не работает, для меня важнее, чем войти в fb немного быстрее, спасибо за помощь, нечетно, что звездочка необходима, когда я не вижу изменения URL – hamsolo474

Смежные вопросы