Noobがjsとhtmlコーディングを試みて...そして惨めに失敗する

Html:

<!DOCTYPE HTML>
<html>
<head>

<script language="JavaScript" src="mapbody.js"></script> 
</head>
<body>

  Click for a message.. 

</body>
</html>

mapbody.js:

function a_message()
{
alert('I came from an external script! Ha, Ha, Ha!!!!');
} 

ウェブページをプルアップしてリンクをクリックしても、何も起こりません。両方のファイルは同じフォルダにあります。私は何が欠けていますか?

2
@Soren彼らは両方とも同じフォルダにあります。それはhtmlとの関係によってあなたが意味するものですか?私はファイアウォールを通してファイルとウェブサイトとして読み込んでいます。コンソールで作業する
追加された 著者 Loren Zimmer,
あなたの問題はおそらくスクリプト自体を読み込むことです - どこにhtmlに関連して位置していますか?どのようにそれを読み込んでいますか? chromeを使用している場合は、developer-tool-menu/java-script consoleで何が問題になっているかのヒントを確認してください
追加された 著者 Soren,
..それはすべて動作するはずです..
追加された 著者 Soren,
最新のChromeとFirefoxで動作確認済み。
追加された 著者 Michael Berkowski,
私はちょうどこれを試み、それは私のために働いています(Firefoxを使って、それが違いを生むならば)。
追加された 著者 Matt Healy,
このようなコードでHTML5のdoctypeをどうやって使うのですか??
追加された 著者 MatTheCat,

3 答え

いくつかのこと:

  1. HTML要素はすべて小文字にする必要があります。
  2. script タグの language 属性は廃止されました。代わりに type = "text/javascript" を使用してください。
  3. JavaScript関数呼び出しは href ではなく onclick 属性に移動する必要があります。

適切な実装は次のようになります。

<!DOCTYPE HTML>
<html>
<head>
<title>Is required!</title>
<script type="text/javascript" src="mapbody.js"></script> 
</head>
<body>
  Click for a message.. 
</body>
</html>

また、 onclick (またはその他の onXX 属性)を使用してHTML要素に関数呼び出しをバインドするのは、古い学校です。ライブラリのようなjQueryを使用すると、CSSセレクタを使用して特定のHTML要素にアクションをバインドすることができ、HTMLとJavaScriptを完全に分離できます。

4
追加された
@イワンはうまくいくかもしれませんが、それはとても面倒です。彼が「すべてがここでうまくいく」と言って、あなたは彼にこのようなことをやり続けるよう動機づけています。
追加された 著者 Lukas Knuth,
元のコードが機能するはずなので、私はdownvoteに誘惑されます。これらのことをすることが推奨されますが、その問題に対する解決策はありません。
追加された 著者 Ivan,
これは奇妙です。まだ動作していないfflorentsテストサイト
追加された 著者 Loren Zimmer,
ファイルを再作成しました。ありがとう
追加された 著者 Loren Zimmer,
これらのことはすべて別にしても、コードはまだ機能するはずです。
追加された 著者 Michael Berkowski,
私は第3に同意しない、それは全くhtmlにあってはならない。
追加された 著者 Esailija,
<!DOCTYPE HTML>
<html>
    <head>
        <title>...</title>
    </head>
    <body>
        Click for a message.. 
        <script type="text/javascript" src="mapbody.js"></script>
    </body>
</html>

Lukas Knuth was faster than me. :)

0
追加された

Works for me (Firefox 8) : http://jsfiddle.net/FCXxU/

スクリプトのURLは良いですか?

これを確認する簡単な方法は、mapbody.jsの前に(関数の前に) alert( 'test'); を追加することです。

0
追加された
アラート(「テスト」)は何をしますか?
追加された 著者 Loren Zimmer,
それに "test"が印刷されたメッセージを表示するだけです。メッセージが表示された場合は、URLが正しいことを意味します。それ以外の場合は間違っています。
追加された 著者 fflorent,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript