Dalam projek sebenar, kami sering menghadapi keperluan untuk melompat antara halaman subsistem dan membukanya dalam halaman baharu Pasukan projek saya menggunakan rangka kerja SSH, jadi URL adalah serupa dengan **** .action, dan juga mempunyai dua parameter (ID sistem dan nama sistem). , menggunakan window.open(url, "_blank") secara langsung akan menjadikan panjang url terlalu panjang dan mendedahkan beberapa parameter. Oleh itu, saya ingin menggunakan kaedah pos untuk menyerahkan, menyembunyikan pemindahan parameter semasa proses penyerahan. Pertama sekali, saya memikirkan penyerahan ajax, tetapi akan ada masalah dengan pemindahan dua parameter dan penyerahan Ajax dan window.open() akan membuat tindakan itu melalui dua kali, jadi ia dibuang. Kemudian saya melihat lebih dekat pada window.open() API, alamat pautan http://www.w3school.com.cn/jsref/met_win_open.asp. window.open() lalai kepada kaedah penyerahan dapatkan Jika anda ingin melaksanakan kaedah penyerahan pos, anda perlu memikirkan cara lain. Rujuk http://www.jb51.net/article/32826.htm, berikut ialah kaedahnya. Ia juga merupakan kaedah yang biasa digunakan. Saya ubah suai sedikit mengikut situasi sebenar:
fungsi openPostWindow(url, nama, data1, data2){
var tempForm = document.createElement("form");
tempForm.id = "tempForm1";
tempForm.method = "post";
tempForm.action = url;
tempForm.target=name;
var hideInput1 = document.createElement("input");
hideInput1.type = "tersembunyi";
hideInput1.name="xtid";
hideInput1.value = data1;
var hideInput2 = document.createElement("input");
hideInput2.type = "tersembunyi";
hideInput2.name="xtmc";
hideInput2.value = data2;
tempForm.appendChild(hideInput1);
tempForm.appendChild(hideInput2);
Jika(dokumen.semua){
tempForm.attachEvent("onsubmit", function(){});
}lain{
var subObj = tempForm.addEventListener("submit",function(){},false); //firefox
}
document.body.appendChild(tempForm);
Jika(dokumen.semua){
tempForm.fireEvent("onsubmit");
}lain{
tempForm.dispatchEvent(Acara baharu("serahkan"));
}
tempForm.submit();
Document.body.removeChild(tempForm);
}
//fungsi openWindow(nama){
// window.open("",nama);
//}
Bilangan parameter dalam fungsi openPostWindow() boleh diubah suai mengikut keperluan sebenar. data1 dan data2 ialah parameter yang perlu dihantar kepada tindakan. Selain itu, isu keserasian penyemak imbas acara Javascript perlu dipertimbangkan di sini. Saya mengulas fungsi openWindow() di sini, jika tidak, halaman kosong tambahan (about:blank) akan dibuka. Ini pada asasnya memenuhi keperluan.
Di atas adalah semua kandungan yang dikongsikan dalam artikel ini, saya harap anda semua menyukainya.