HTML内のJavaScriptからJSファイル関数を呼ぶ

[新着] Webテンプレートを仮オープンしました



0   名前: aki : 2006/01/17 18:35
はじめて書き込みさせて頂きます。

現在とある開発でJavaScriptを使用しているのですが
次の様な事は可能でしょうか?
当方JavaScript初心者で困っています。。。

現在開発しているシステムのHTML上にJavaScriptがあり
そのうち一部をJSファイル化したいのですが、この時に
HTMLのヘッダ部分に記述したJavaScriptからJSファイル内の
関数をコールする事は出来るのでしょうか?

【ソース例】
html側のJavaScript

function toGet()
{
var a=1;
var b=2;
var c=3;

if(hoge(a, b, c))
{
alert("こちらはHTML");
}
}

JSファイル側
function hoge(a, b, c)
{
alert("こちらはJSファイル側");
if(a==1 && b==2 && c==3)
{
return true;
}
return false;
}

この様に記述しても『オブジェクトを指定して下さい』とのエラーが出てしまいます。
ご教授よろしくお願いします。

1   名前: かわうそ : 2006/01/17 18:35
恐らくですが、JSファイルへのパスが間違ってるんじゃないでしょうか?
例えばJSファイルの中に単純に、
alert("test");
と書いてページを開いたときに「test」アラートが表示されるかどうか試してみては?

2   名前: aki : 2006/01/17 18:35
>かわうそさん
さっそくのご回答、ありがとうございます。

JSファイルへのパスですが、現在2つのJSファイルへリンクを貼っているのですが
確認して見ましたが、両方とも正常の様です。

3   名前: かわうそ : 2006/01/17 18:35
最初にtoGet()関数をコールところはどのように記述していますか?

4   名前: aki : 2006/01/17 18:35
>かわうそさん
toGet関数のコール部分は、HTMLのBody部分に<a href="javascript:toGet()">
と言う風に記述しています。

5   名前: 匿名希望 : 2006/01/17 18:35
> HTMLのヘッダ部分に記述したJavaScriptからJSファイル内の関数をコールする事

普通にできるはず。
じゃあなぜできないのかは、現段階の話の流れからは分からない。

6   名前: かわうそ : 2006/01/17 18:35
確かに話を聞く限りでは変なところはなさそうです。
ソースをそのままアップしてもらえば何か分かるかもしれませんが・・・。

7   名前: Pid : 2006/01/17 18:35
以下の検証ソースでは,少なくとも WinIE6,Firefox1.5,Safari2.0 で問題なく関数を呼べています。

【test.html】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>テスト</title>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript">
function toGet () {
var a = 1;
var b = 2;
var c = 3;
if (hoge (a, b, c)) { alert ("こちらはHTML"); }
}
</script>
<p onclick="toGet();">テスト。</p>

【test.js】
function hoge (a, b, c) {
alert ("こちらはJSファイル側");
return a == 1 && b == 2 && c == 3;
}

一覧へ戻る