ホームページ >ウェブフロントエンド >jsチュートリアル >window.open() は、パラメータを渡す後の実装_javascript スキル

window.open() は、パラメータを渡す後の実装_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:10:081747ブラウズ

実際のプロジェクトでは、サブシステム ページ間を移動して新しいページで開く必要がよくあります。私のプロジェクト チームは SSH フレームワークを使用しているため、URL は **** .action に似ており、さらに 2 つあります。パラメータ (システム ID とシステム名)。これら 2 つのパラメータは Struts によってインターセプトされ、セッションに保存されます。また、初期化にパラメータ システム ID を必要とする ztree プラグインによって実装されるツリー メニューもあります。 window.open(url, "_blank") を直接使用すると、URL の長さが長すぎて、いくつかのパラメーターが公開されます。したがって、投稿プロセス中のパラメータの転送を非表示にして、post メソッドを使用して送信したいと考えています。まず、ajax の送信を考えますが、Ajax の送信と window.open() の 2 つのパラメータの転送に問題が発生するため、これらは破棄されます。次に、window.open() API、リンク アドレス http://www.w3school.com.cn/jsref/met_win_open.asp を詳しく調べました。 window.open() のデフォルトは get submit メソッドです。post submit メソッドを実装したい場合は、別の方法を考える必要があります。 http://www.jb51.net/article/32826.htmを参照してください。ここに方法があります。これもよく使われる方法です。実際の状況に応じて少し修正しました:

コードをコピーします コードは次のとおりです:

function openPostWindow(url, name, data1, data2){
var tempForm = document.createElement("フォーム");
tempForm.id = "tempForm1";
tempForm.method = "投稿";
tempForm.action = url;
tempForm.target=name;
var hideInput1 = document.createElement("input");
hideInput1.type = "非表示";
hideInput1.name="xtid";
HideInput1.value = データ 1;
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(){}); _ }その他{
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);
}
//関数 openWindow(name){
// window.open("",name);
//}

openPostWindow() 関数のパラメータの数は、実際のニーズに応じて変更できます。 data1 と data2 は、アクションに渡す必要があるパラメーターです。さらに、ここでは Javascript イベント ブラウザの互換性の問題を考慮する必要があります。ここでは関数 openWindow() をコメントしました。そうしないと、余分な空白ページ (about:blank) が開かれます。基本的にはこれでニーズは満たされます。

上記はこの記事で共有されたすべての内容です。皆さんに気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。