実際のアプリケーション開発では、JS モジュールのイベントを使用することがよくありますが、簡単な例では、フォームの外にある「送信」ボタンをクリックしてフォームを送信するなど、いくつかの問題が発生することがあります。コードを書いてみましょう。 HTML: コードをコピー コードは次のとおりです: < ;h3> 「送信」をクリックすると、テスト送信ボタンのクリックイベントもトリガーされます。 <ボタン id="btn">送信ボタン> <フォーム アクション="#" メソッド="get" id="フォーム"> ;input type="text" name="site" value="www.woiweb.net" readonly/> Javscript: コードをコピーします コードは次のとおりです。 <br>var sub = document.getElementById ("subbtn "); <br>var btn = document.getElementById("btn"); <br>//一般的なメソッド<br>btn.onclick = function() { <br>sub.click(); >} <br> テストの結果、IE、FF、Chrome、Opera、Safari では問題なく、正常にフォームを送信できました。 しかし、実際のデザインでは、送信ボタンの見栄えを良くするために、ビルダーはタグを使用してボタンを処理し、背景画像を追加してボタンをシミュレートすることがよくあります。フォームを送信するためのタグの場合、HTML のみを変更します。 HTML: コードをコピー コードは次のとおりです: < ;h3> 「送信」をクリックすると、テスト送信ボタンのクリックイベントもトリガーされます。 <ボタン id="btn">送信ボタン> <フォーム アクション="#" メソッド="get" id="フォーム"> ;input type="text" name="site" value="www.woiweb.net" readonly/> 送信ボタンをシミュレート JavaScript: コードをコピーします コードは次のとおりです。 </div>var sub = document.getElementById ("subbtn"); <div class="codebody" id="code40476">var btn = document.getElementById("btn"); <br>//一般的なメソッド<br>btn.onclick = function() { <br>sub.click( ); <br>} <br> 実行後、IE、FF、Opera は正常に動作しましたが、その後、Chrome と Safari が正常に動作しなくなりました。オンラインで検索したところ、ラベルにはボタンと同じ onclick() イベントがないことがわかりました。解決策は、IE と FF で異なるロジックを記述することです。javascript: コードをコピー コードは次のとおりです。 </div>var sub = document.getElementById("subbtn"); <div class="codebody" id="code39408">var btn = document.getElementById("btn"); <br>//一般的なメソッド<br>btn.onclick = function() { <br>//sub. click(); <br>if (/msie /i.test(navigator.userAgent)) //IE <br>{ <br>sub.fireEvent("onclick"); else { <br>var e = document.createEvent('MouseEvent'); <br>e.initEvent('click', false, false); <br>} <br>} <br>; /スクリプト><br><br><br>この時点で問題は解決しました。この問題は非常に単純ですが、みんなに共有するために投稿しました。 <br><br>構文: <br><br>createEvent(eventType) <br><br>パラメータ 説明 <br><br>eventType 取得する Event オブジェクトのイベント モジュール名。有効なイベント タイプのリストについては、「説明」セクションを参照してください。 <br><br>戻り値 <br><br>指定された型で新しく作成された Event オブジェクトを返します。 <br><br>スロー <br><br> 実装が必要なイベント タイプをサポートしている場合、このメソッドはコード NOT_SUPPORTED_ERR の DOMException をスローします。 <br><br>説明 <br><br>このメソッドは、パラメーターeventTypeで指定された新しいイベント タイプを作成します。このパラメータの値は、作成されるイベント インターフェイスの名前ではなく、そのインターフェイスを定義する DOM モジュールの名前であることに注意してください。 <br><br>次の表に、eventType の有効な値と、それぞれの値によって作成されるイベント インターフェイスを示します。 <br><br>パラメータ イベント インターフェイスの初期化メソッド <br>HTMLEvents HTMLEvent iniEvent() <br>MouseEvents MouseEvent iniMouseEvent( ) <br>UIEvents UIEvent iniUIEvent() <br><br>このメソッドを使用して Event オブジェクトを作成した後、上記の表に示す初期化メソッドを使用してオブジェクトを初期化する必要があります。初期化メソッドの詳細については、「イベント オブジェクト リファレンス」を参照してください。 <br><br>このメソッドは、実際には Document インターフェースによって定義されるのではなく、DocumentEvent インターフェースによって定義されます。実装が Event モジュールをサポートしている場合、Document オブジェクトは DocumentEvent インターフェイスを実装し、このメソッドをサポートします。</div>