Подтвердить что ты не робот

Ярлык Javascript перейдите по URL-адресу и выполните

У меня есть такой javascript, я использовал букмарклет:

window.location="URL"
document.getElementById('username-id').value = 'User'
document.getElementById('pwd-id').value = 'pass'
doLogin();

Проблема в том, что javascript останавливается, как только он попадает в URL-адрес. Как заставить его перейти на страницу и выполнить script?

Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

К сожалению, ваш букмарклет не будет работать. Изменение window.location приводит к загрузке новой страницы - вы не можете выполнить какой-либо Javascript на этой странице, не имея при этом первого документа.

Желаемое действие может быть достигнуто с помощью расширений браузера, например. Greasemonkey script, которые выполняют указанный Javascript на странице при загрузке страницы.

Ответ 2

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

Чтобы решить проблему выше, я добавил закладкики в панель избранного в браузере, для которой требуется два клика:  1. Нажмите, чтобы перейти к местоположению  2. Нажмите, чтобы заполнить форму

javascript: 
 var L='http://mysite.com/';
 if(location!=L)location=L;
 else{
  document.getElementById('username-id').value='User'; 
  document.getElementById('pwd-id').value = 'pass';
  document.close();
  doLogin(); 
 }

Удачи!

Ответ 3

Попробуйте обернуть свой код событием window.onload.

window.location = "URL"; window.onload = function() {
document.getElementById('username-id').value = 'User'
document.getElementById('pwd-id').value = 'pass'
doLogin();
}

Поскольку решение выше не работает, вы все равно должны иметь возможность написать простое расширение браузера, чтобы решить вашу проблему. Это легко: выберите браузер, который вы используете, и следуйте документации. Это единственный способ сделать это.

Ответ 4

Если вы контролируете загружаемую страницу, я бы рассмотрел передачу этих данных в качестве фрагмента и обработку этого со страницы. Что-то вроде window.location="URL#username=...;password=...", чем синтаксический анализ данных из фрагмента на странице и выполнение того, что вам нужно. Однако в этом конкретном случае это не очень хорошая идея, поскольку пароль будет сохранен в истории просмотра.