Diğer cevaplar üzerine inşa!
Kodun hata ayıklama sürümü, ayrıca temizleme VE jsbeautifier.org/.
(function() {
var ThisAction = 'https://your.urlgoes.here/build?delay=0sec';
/* A little JSON never hurt anyone */
var ThisPost = {
name: 'ENVIRONMENT',
value: 'production',
name: 'DEPLOYTYPE',
value: 'Incremental',
name: 'BRANCH',
value: 'master',
statusCode: '303',
redirectTo: '.',
json: '{"parameter": [{"name": "ENVIRONMENT", "value": "production"}, {"name": "DEPLOYTYPE", "value": "Incremental"}, {"name": "BRANCH", "value": "master"}], "statusCode": "303", "redirectTo": "."}',
Submit: 'Build'
};
/* Help us locate this function */
console.trace();
/* See what we are looking at */
console.log(document);
var form = document.getElementsByTagName('form')[0];
form.style.visibility = 'hidden';
form.method = 'post';
form.action = ThisAction;
for (var key in ThisPost) {
if (ThisPost.hasOwnProperty(key)) {
input = document.createElement('input');
input.name = key;
input.value = ThisPost[key];
form.appendChild(input);
}
}
/* form.submit(); */
})();
Açıkçası, karşılık gelen html olmadan, 'form' etiketli bir eleman mevcut olmayabilir ... ve eğer işler daha kötü olabilir. Yukarıdakiler bunu iyi göstermektedir. Krom javascript: URI'lar / Yer İmleri'nin yeni bir sekmede çalışmadığını, önce bir kez gezinmeniz gerektiğini unutmayın. Bu, belge nesnesini doldurur, ancak yalnızca bir javascript'i bile doldurur: alert ('t'); hiç birşey yapmıyor.
Aşağıdakileri öneririm.
(function() {
var ThisAction = 'https://your.urlgoes.here/build?optional=uri_get';
/* A little JSON never hurt anyone */
var ThisPost = {
multiple: 'value',
key: 'pairs',
or: 'JSON like so...',
note: 'the double quotes and last item with NO trailing comma.',
json: '{parameter: [{name: "stuff"}]}'
};
var form = document.createElement('form');
form.style.visibility = 'hidden';
form.method = 'post';
form.action = ThisAction;
for (var key in ThisPost) {
if (ThisPost.hasOwnProperty(key)) {
var input = document.createElement('input');
input.name = key;
input.value = ThisPost[key];
form.appendChild(input);
}
}
document.body.appendChild(form);
form.submit();
})();
Hata ayıklama ayarlarını kaldırın, beklenenden daha iyi netlik için örnek girişi temizleyin. Aracılığıyla Run http://jscompress.com/ ya da her neyse ve tek bir satır olsun.
!function(){var e="https://your.urlgoes.here/build?optional=uri_get",t={multiple:"value",key:"pairs",or:"JSON like so...",note:"the double quotes and last item with NO trailing comma.",json:'{parameter: [{name: "stuff"}]}'},i=document.createElement("form");i.style.visibility="hidden",i.method="post",i.action=e;for(var o in t)if(t.hasOwnProperty(o)){var a=document.createElement("input");a.name=o,a.value=t[o],i.appendChild(a)}document.body.appendChild(i),i.submit()}();
Düzenleme: Çalışan bir örnek verin.
ABD, MN, Minneapolis'te bunu, Ücretsiz WiFi ESSID "USIW Ücretsiz WiFi" erişmek için kullanın. Bir hesap açmak için https://login.usiwireless.com/mplsfree/logon.php?originalurl=www.google.com/ adresini kullandıktan sonra kötüye kullanım nedeniyle bir kredi kartı istiyorlar.
Bunu, belirgin değişikliklerle birlikte ağa giriş yapmak için kullanın.
javascript:!function(){var e="https://login.usiwireless.com/mplsfree/logon.pl",o={usernameLogin:"USER",passwordLogin:"PASSWORD",originalurl:"www.google.com/"},n=document.createElement("form");n.style.visibility="hidden",n.method="post",n.action=e;for(var i in o)if(o.hasOwnProperty(i)){var t=document.createElement("input");t.name=i,t.value=o[i],n.appendChild(t)}document.body.appendChild(n),n.submit()}();