Как создать букмарклет, который отправляет форму входа - PullRequest
2 голосов
/ 25 сентября 2010

Я понимаю, что это не потрясающе с точки зрения безопасности, но пошутил.

Есть ли способ создать букмарклет, который отправляет форму, например форму входа в систему. Например, это работает, но только если в текущем окне браузера есть страница, загруженная:

javascript:(function(){document.body.innerHTML += '<form id=f action=https://www.mysite.com/login method=post><input type=hidden name=un value=uname><input type=hidden name=pw value=pword>';document.getElementById("f").submit();})();

Есть ли способ построить форму прямо в JavaScript и отправить ее?

1 Ответ

3 голосов
/ 25 сентября 2010

Если вам не нужна текущая страница вообще, вы можете полностью заменить ее, если выражение bookmarklet вернет строку, содержащую полную новую страницу:

javascript:'<body onload="document.forms[0].submit()"><form method="post" action="https://www.mysite.com/login"><input type="hidden" name="un" value="uname"><input type="hidden" name="pw" value="pword"></form>'

, тогда вам не нужнобеспокоиться о том, был ли на предыдущей странице <body> или другой элемент с id="f".

(И +1 Матти: innerHTML+= - это всегда ошибка.)

...