0

次のコードは期待どおりに機能していません。「スクリプトタグバインディングメソッド」を使用して、イベントを発生させています。これを直していただけませんか?ありがとう

<html>

    <head>

                <title>
                    Example
                </title>

    </head>

    <body>

        <input type="button" name="cmdScriptTag" value="Script Tag">

                <script language="javascript" For="cmdScriptTag" Event="OnClick">

                    alert("Script Tag Binding Method.");

                </script>

        </body>

</html>
4

1 に答える 1

1

あなたのコードには次のものがあります:

> <script language="javascript" For="cmdScriptTag" Event="OnClick">

スクリプト要素の言語属性はHTML4で非推奨になり、HTML5で削除されました。type属性は、HTML 4では必須であり、HTML5ではオプションです。実際には、それは必要ではありません、あなたはただ使うことができます:

<script>
  /* content */
</script>

スクリプト要素のfor属性は、Microsoft独自の機能であり、標準の一部ではなく、IE以外ではまったくサポートされていない可能性があります(現在のIEバージョンではサポートされていない可能性があります)。これは、 DOM 2 HTML仕様で将来使用するために予約されていましたが、スクリプト要素には実装されていません(私が知る限り)。HTML5と同じHTML4.01のラベル要素にのみ適用されます。

私の知る限り、イベント属性はありませんでした。for属性に関連している可能性がありますが、どちらもMSD​​Nにリストされていません。

event属性はfor属性に似ています。これは、広く実装されていないIE機能であり、script要素内のスクリプトを別の要素のイベントに関連付けます。基本的に、他の標準に準拠したメソッドを使用してスクリプトを要素やイベントに関連付けるのと同じですが、かなり不格好です。

いずれの場合も、要素が特定のイベントを受信したときに呼び出される要素に関数を関連付けるには、さまざまなメソッドを使用できます。最も堅牢で広く実装されているのは、インラインリスナーです。例:

<input type="button" name="cmdScriptTag" value="Script Tag"
 onclick="alert('Script Tag Binding Method.');">

通常、スクリプト本体はリスナーによって呼び出される関数に配置されますが、たとえば

<script>
  function foo(){
      alert('Script Tag Binding Method.');
  }
</script>
<input type="button" name="cmdScriptTag" value="Call foo"
 onclick="foo();">

また、 Mozilla Developer Network(MDN)で説明されているaddEventListenerなどのさまざまなメソッドを使用して、リスナーを動的にアタッチすることもできます。

于 2012-11-23T02:12:39.617 に答える