以下のようなコードを書いているのですが、このファイルでJavaScriptのtest()を実行したいです。

このファイルをブラウザにドラッグドロップ(ローカルにあるファイルを表示しているだけ)しても実行出来なかったのですが、サーバにおいてhttpで取ってこないと実行されないでしょうか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>JavaScript Test</title>
<script type="text/javascript">
function test(){
alert("hoge");
}
</script>
</head>
<body>
<a href="javascript:test()">hoge</a>
</body>
</html>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/11/15 18:59:47

回答2件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

function は関数宣言しているだけなので、
せっかく作っても、それを呼び出すものが無ければ機能はしませんよ
 
functionを呼び出す例

<body onload="javascript:test()">

 
ぜったいに1回は動かすという場合は
下記のようにしてしまう方法もあります

<script type="text/javascript">
alert("hoge");
</script>
id:windofjuly

「ドラッグドロップ(ローカルにあるファイルを表示しているだけ)しても実行出来なかった」に反応してしまったのだけど、
「ドラッグ&ドロップしてリンクをクリックしても実行できなかった」ということであれば、
 
a-kuma3さんの回答にあるロックダウン(詳しくは下記)が原因の可能性が高そうですね
ローカル コンピュータ ゾーンのロックダウン
http://technet.microsoft.com/ja-jp/library/cc782928(WS.10).aspx 
 
自前でサーバー立てるのも経験としていいとは思いますし、
同じく経験ということで別のブラウザを使うという手もあると思います
(ブラウザによってスクリプトの挙動にも違いは出ますので・・・)

2011/11/15 15:42:54
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

hoge のリンクをつついても、alert() が実行できなかった、ということですよね?

IE を使ってませんか?
デフォルトのセキュリティの設定だと、ローカルにあるファイルのスクリプトは
実行できないようにブロックされているはずです。

セキュリティの設定を緩めるのは、何かと恐いので、ローカルに Apache を立ててしまい、
そこを経由して動作確認する、というのではどうでしょうか?
インストールのやり方を説明したページは、星の数ほどあると思いますが、そのうちの一つを以下に。
Apacheインストール - Apache入門

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません