
ASP.NET で作成された Web ページ内の __doPostBack 関数についての質問です。
以下のコード(抜粋、左端は行数)において、以下の点が不明ですのでお教え願います。
Q1. 11 行目の記述は何のために必要なのでしょうか?
もし、9 行目での theForm オブジェクトの取得が失敗した場合に、11 行目が必要になる
というのであれば、最初から 11 行目のみ書いておけばよいと思うのですが。
Q2. 14 行目の if 文の条件について、どちらか一方だけでは何故ダメなのでしょうか?
1 <form name="aspnetForm" method="post" action="Details.aspx" id="aspnetForm">
2 <div>
3 <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
4 <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
5 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(略)" />
6 </div>
7 <script type="text/javascript">
8 <!--
9 var theForm = document.forms['aspnetForm'];
10 if (!theForm) {
11 theForm = document.aspnetForm;
12 }
13 function __doPostBack(eventTarget, eventArgument) {
14 if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
15 theForm.__EVENTTARGET.value = eventTarget;
16 theForm.__EVENTARGUMENT.value = eventArgument;
17 theForm.submit();
18 }
19 }
20 // -->
21 </script>
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
バージョンによる違いを吸収するための施策だと
思います。
バージョンによってどちらかしか反応しないことが
想定されているのではないでしょうか?
たとえばQ1については11行目ですべてが包含されるなら
問題ないですが、実際には11行目でこぼれる分がある
ため、11行目のみを書いてそれを補完するために
9行目を書くということになるでしょう。
ご回答ありがとうございます。
なるほど、ブラウザのバージョン差異の吸収が考えられますね。
具体的にどういった場合に必要とされるコードなのか、バージョン差異の観点から調べてみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ASP.NETでNAME属性を固定にしたい
-
cookie使用時にundefinedと表示...
-
doPostBack 関数について
-
エクセル マクロ submitについて
-
<input>の選択肢をプルダウンメ...
-
Selectボックスの幅を自動で広...
-
javaScriptの変数をJavaの変数...
-
JavaScriptのfileオブジェクト...
-
<JavaScript>tableタグを入力不...
-
RegularExpressionValidatorの...
-
クリックされた罫表セルの行番...
-
同じ名前のセレクトがある場合...
-
onchangeイベントを強制的に発...
-
プルダウンで選択された値を別...
-
二次元配列に数字をランダムに...
-
sessionの値でボタンを活性・非...
-
JQueryで2つのテキストフィー...
-
【FORM】 リンク文字で submit...
-
tableの任意行にfocusをあてる
-
ラジオボタンにタブインデック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【jQuery】input nameの文字列...
-
出発駅A、到着駅Bを選択すると...
-
ASP.NETでNAME属性を固定にしたい
-
ラジオボタンでクリックした値...
-
動的にTabindexの値を変えたい!
-
JavaScriptにて動的に配列を作...
-
新しくフォルダを作成したい
-
二つの入力欄に、同時に同じ文...
-
ひ孫に当たるiframe から親ウイ...
-
VBscript で複数テキストがある...
-
jqueryでtextareaのcols、rows...
-
テキストボックスの入力をリセット
-
JQuery + autocomplete + ajax(...
-
JavaScriptで連想配列のマージ
-
付属の写真のようにエラーが出...
-
javascriptの値をformのinput h...
-
hiddenを動的に作成したい
-
ボタンを押すとテキストボック...
-
入力フォームに半角スペース以...
-
cookie使用時にundefinedと表示...
おすすめ情報