-1

ブラウザでJavaScriptファイルを実行しようとしていますが、コードが表示され、実際には実行されません。Firefoxを使用していて、JavaScriptが有効になっていることを確認しました。.js拡張子と.shtmlを使用してみましたが、どちらもコードを表示するだけです。このファイルは私のapachehtdocsフォルダーにあり、バージョン2.2です。

このhelloworldコードを実行しようとしています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="helloworld.js"></script>
</head>
<body>
<p id="hello"></p>
</body>
</html>

これがJavaScriptです

document.getElementById('hello').innerHTML = 'hello world';

助言がありますか?

4

3 に答える 3

3

ID の要素がありませんex

表示した HTML では、行は次のようになります。

document.getElementById('hello').innerHTML = 'hello world';

<p>タグに-- があることを確認してください。これをid="hello"呼び出すにはどうすればgetElementById('ex')よいでしょうか?


編集

JSFiddle の作業例

于 2012-05-01T12:47:41.700 に答える
1

このようなことを試してください

        <html>
        <head>
        <script type="text/javascript" src="helloworld.js"></script>
        </head>
        <body  onload="onload1()">
        <p id="hello"></p>
        </body>
        </html>

helloworld.js

        function onload1(){
         document.getElementById('hello').innerHTML = 'hello world';
        }
于 2012-05-01T13:13:37.183 に答える
-1

上記のコードを.htmまたは.htmlとして保存します。サーバーがSSI(.shtml拡張子)を使用するように構成されていない可能性があります。

あなたはそれを.jsと.shtmlとして保存したと言いましたが、これはおそらくあなたが間違っているところです。ブラウザはJavaSciptの表示を目的としていないため、ブラウザで直接開いた場合、.jsファイルは正しく表示されません。したがって、HTMLを対象としたファイルタイプを使用する必要があります。.shtml拡張子はHTML用ですが、SSI(Server Side Includes)を使用するサーバーでのみ使用されるため、サーバーがSSIを使用しない場合は機能しません。

通常、mimeタイプが間違っているとコードが表示されます。mimeタイプは、サーバーがブラウザに送信するファイルの種類を通知する方法ですhttp://en.wikipedia.org/wiki/Internet_media_type。サーバーはmimeタイプを送信します。これは、ファイル拡張子、または場合によってはファイルの特定の部分を調べることによって決定されます(サーバー側のコードでもmimeタイプを調整できます)。サーバーは、拡張子が.htmおよび.htmlのファイルにHTML mimeタイプを提供しますが、.jsにはそのタイプはありません。サーバーがSSIを使用している場合、.shtmlファイルにはHTMLmimeタイプのみが与えられます。したがって、ブラウザがそれらのファイルを取得すると、プレーンテキストとしてそれらのファイルを一時停止します。これが、コードが表示される理由です。

したがって、拡張子を.htmまたは.htmlに変更するか、サーバーでSSIを有効にします(または、そのディレクトリで機能するように構成されていることを確認します)。

ちなみに、ID'ex'の要素がないため、JSは何もしませんが、コードが表示される問題は発生しません。しかし、それはあなたに問題を与えるでしょう。

于 2012-05-01T12:52:07.623 に答える