1

JavaScript を使用して新しいウィンドウで開くリンクがある古い ASP WebForms ページで作業しています。このリンクには、次のような GET パラメータが含まれています。

<href="javascript:window.open(http://myurl.com?MyId=123).focus()">
    Search for object
</a>

私がやりたいことはMyId、ブラウザの履歴に値が保存されるのを避けるために、この GET パラメータを Post 変数に置き換えることです。おそらく次のようなものです:

<input type="hidden" id="MyId" name="MyId" value="123">
<a href="submitSearchCriteria()">
    Search for object
</a>

注:これは Web フォーム ページであるため、ページのコンテンツ全体が<form>...</form>、ページ自体にポスト バックされる 1 組のタグ内にあり、これらを台無しにしたくありません。リンクしたいページは別のページです。

私の質問:このようなリンク内からポスト変数を渡すための、かなりシンプルでクリーンで安全な方法はありますか? 可能であれば、サードパーティの Java スクリプト ライブラリを含めずにこれを行うことをお勧めします (古いシステムに必要な変更を最小限に抑えたいと考えています)。

何か案は?

4

1 に答える 1

0

MyId をフォームに追加します。

<input type="hidden" id="MyId" name="MyId" value="123">

次に、ハイパーリンク:

<a href="#" onclick="submit()">Search for object</a>

次に、JavaScript を使用してフォーム アクションを変更します。

function submit(){
 [Your Form].action = "[Your Action]";
 [Your Form].submit();
}

フォームは送信されますが、ページが更新されると、フォーム アクションは以前のものに戻ります。ただし、これは、新しいアクションをどこに戻すかによって異なります。応答を処理するために何かを追加できます。あなたが私に尋ねるなら、これは最も簡単な解決策です。しかし、最も明確にするために、AJAXについて読んでみてください。

于 2012-10-02T10:10:27.863 に答える