0

ユーザーがHTMLプログラムを作成できるように、プログラムエディタでWebサイトを作成しています。通常<script> alert("Hi!"); </script>、入力エリアに入力してこれをテストしbodyますが、アラートは表示されません。コードからわかるように、その結​​果、スクリプトはdiv. では、 s はscripts で機能しdivますか? もしそうなら、これが私のコードです(少なくとも重要な部分です):

これは、「Run!」を押したときに実行するスクリプトです。ボタン:

<script>
    function onclick(){
        document.getElementsByTagName("head")["0"].innerHTML += eval(document.getElementById("editorHead").value);
        document.getElementById("result").innerHTML = eval(document.getElementById("editorBody").value);
    }
</script>

これは、入力エリアと実行ボタンのコードです (それらの間のテキストとクラス属性を省略しています):

<textarea id="editorHead" rows="20"></textarea>
<textarea id="editorBody" rows="20"></textarea>
<div id="result"></div>
<button onclick="onclick();">Run!</button>

onclickの名前をに変更してみrunましたが、それでクリックが機能しました(それ以前は、クリックしてもボタンが青くなりませんでした)が、それだけでした。

4

1 に答える 1

0

尋ねられた質問は、スクリプトが div で機能するかどうかです。はい <script></script> タグのコンテンツは、ドキュメントに表示される場所でインラインで実行されます。

ただし、常にドキュメント コンテキストで実行されます。この === ドキュメントを意味します。したがって、div の onclick メソッド (JavaScript で UI イベントを処理する方法) にバインドするには、div を見つける必要があります。

document.findElementById("my-div-id").onclick = function(e) {
   // do something
};

デフォルトのクリック動作がある場合、これは要素のデフォルトの動作を上書きすることに注意してください(タグのように)

また、予想される動作をより明確にするために。これを行う

<script>
    function doSomething() {
        alert();
    }
</script>
<button onclick="doSomething()">Button</button>
于 2013-11-13T20:57:10.803 に答える