Если я правильно понимаю ваш вопрос, вам действительно нужно только изменить атрибуты метода и действия в форме:
(function(){
var f = document.forms;
for(var x = 0; x < f.length; x++) {
f[x].method = 'GET';
f[x].action = 'http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi';
}
})()
В одну строку это будет javascript:(function(){var f=document.forms;for(var x=0;x<f.length;x++){f[x].method="GET";f[x].action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi"}})()
.
Отправка форм не зависит от политики одного и того же происхождения, поскольку они являются очень старой функцией браузеров.Отказ от возможности отправки форм в нескольких доменах может привести к катастрофическим нарушениям совместимости веб-сайтов.
РЕДАКТИРОВАТЬ: Используйте обработчик onsubmit, если вам нужно сделать копию формы, и вы можете сделать этоскопируйте с помощью метода DOM cloneNode, открыв новое всплывающее окно с помощью target = "_ blank":
(function(){
var f = document.forms;
for(var x = 0; x < f.length; x++) {
f[x].oldOnsubmit = f[x].onsubmit || function() {
return true;
};
f[x].onsubmit = function() {
var clone = this.cloneNode(true);
if(this.oldOnsubmit.apply(this, arguments)) {
clone.method = 'GET';
clone.action = 'http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi';
clone.target = '_blank';
clone.style.display = 'none';
clone.onsubmit = null;
document.body.appendChild(clone);
clone.submit();
} else {
return false;
}
};
}
})()
Сжатый в форму букмарклета с помощью Closure Compiler, которая будет: javascript:(function(){for(var c=document.forms,b=0;b<c.length;b++){c[b].oldOnsubmit=c[b].onsubmit||function(){return true};c[b].onsubmit=function(){var a=this.cloneNode(true);if(this.oldOnsubmit.apply(this,arguments)){a.method="GET";a.action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi";a.target="_blank";a.style.display="none";a.onsubmit=null;document.body.appendChild(a);a.submit()}else return false}}})()
Он работает только в Internet Explorer, Firefox и Opera, но, надеюсь, этого достаточно, чтобы начать работу.