実際のプロジェクトでは、私はしばしばそのような要件に遭遇します。つまり、サブシステムのページ間でジャンプして新しいページで開くことです。私がいるプロジェクトチームはSSHフレームワークを使用しているため、URLは****。アクションに似ており、2つのパラメーター(システムIDとシステム名)もあります。 2つのパラメーターは、ストラットによって傍受され、セッションに保存されます。また、パラメーターシステムIDを初期化する必要があるオープンサブシステムページにZtreeプラグインによって実装されたツリーのようなメニューもあります。 window.open(url、 "_ blank")を直接使用します。これにより、URLが長すぎてパラメーターが公開されます。したがって、代わりに投稿を使用して、提出プロセス中にパラメーターの合格を隠したいと思います。まず第一に、私はAjaxの提出について考えますが、2つのパラメーターが通過することに問題があります。 ajaxの送信とwindow.open()は、アクションを2回進めますので、giveめます。その後、window.open()apiを慎重に調べ、リンクアドレスはhttp://www.w3school.com.cn/jsref/met_win_open.aspでした。 window.open()は、デフォルトでGet送信方法です。投稿送信方法を実装する場合は、別の方法を考える必要があります。 //www.vevb.com/article/32826.htmを参照してください。ここでメソッドを紹介してください。また、よく使用される方法でもあります。実際の状況に基づいていくつかの変更を加えました。
コードコピーは次のとおりです。
関数OpenPostWindow(url、name、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 = "hidden";
hideinput1.name = "xtid";
hideinput1.value = data1;
var hideinput2 = document.createelement( "input");
hideinput2.type = "hidden";
hideinput2.name = "xtmc";
hideinput2.value = data2;
tempform.appendchild(hideinput1);
tempform.appendChild(hideinput2);
if(document.all){
tempform.attachevent( "onsubmit"、function(){}); // IE
}それ以外{
var subobj = tempform.addeventlistener( "submit"、function(){}、false); // firefox
}
document.body.appendChild(tempform);
if(document.all){
tempform.fireevent( "onsubmit");
}それ以外{
tempform.dispatchevent(new Event( "submit"));
}
tempform.submit();
document.body.removechild(tempform);
}
// function openwindow(name){
// window.open( ""、name);
//}
OpenPostWindow()関数のパラメーターの数は、実際のニーズに応じて単独で変更されます。 data1とdata2は、実行中に渡す必要があるパラメーターです。さらに、JavaScriptイベントブラウザの互換性の問題をここで考慮する必要があります。ここでfunction openWindow()についてコメントしました。そうしないと、余分な空白ページを開きます(約:空白)。これは基本的にニーズを満たしています。
上記はこの記事で共有されているすべてのコンテンツです。あなたがそれを気に入っていただければ幸いです。