2010-09-24 3 views
2

Я понимаю, что это не потрясающе с точки зрения безопасности, но с юмором.Как создать букмарклет, который отправляет форму входа в систему

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

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 и представить, что?

+4

Добавление материала к 'document.body' путем добавления к innerHTML * сломается вещи ужасным способом *. Не делай этого. Шутки в сторону. Используйте appendChild для добавления формы. –

ответ

3

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

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+=это всегда ошибка.)

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