『ボヘミアン・ラプソディ』はなぜ人々を魅了したのか >>

こんにちは
外部ファイル hello.js
-----------------------------
function aisatsu(){
var aa="hello"
}
-----------------------------
というファイルが存在した時にjikkou.htmlでaaの値、”hello”を呼び込みたい場合はどう記述すればよいのでしょうか?htmlのなかでaisatsu()をどこに記述していいのか分かりません。どうか教えてください。ただ、hello.jsのほうは実際の記述を簡略化したものであるのでそちらのほうはいじれません。

宜しくお願いします。

必要ないかもしれませんが、念のために私が最初に書いたhtmlの文です(もちろん実行できませんでした)
------------------------------------
<html>
<script language="javascript" src="hello.js">
aisatsu(){
document.write(aa);
}
</script></html>
------------------------------------

このQ&Aに関連する最新のQ&A

AA とは」に関するQ&A: MERIDA F-903 AA とは?

A 回答 (2件)

function内で「var」をつけて変数を宣言するとfunction外からその変数の内容を取得することができなくなります。

(returnで参照することはできます。)
なので変数の内容を取得する場合は「hello.js」の内容を

function aisatsu(){
var aa="hello";
return aa;
}

このように修正し、

<script language="javascript" src="hello.js"></script>
<script language="javascript">
var data=aisatsu();//「aisatsu()」関数の「aa」変数内のデータを引っ張り出す(return aa;)
document.write(data);//書いたり
alert(data);//アラートしたり
window.status=data;//ステータスバーに表示したり・・
</script>
    • good
    • 2
この回答へのお礼

returnがキーワードだったんですね。ありがとうございました。うまく意味が伝わるか分かりませんが、function aisatsu()のなかでは可能な限りシンプルにしておいて、それを実行するhtmlで読み取った値を自由に操作したかったので教えていただいた文はとてもよかったです。この後、returnについて自主学習してみます。ありがとうございました。

お礼日時:2007/10/17 23:55

-----------------------------


function aisatsu(){
var aa="hello"
}
-----------------------------





-----------------------------
function aisatsu(){
var aa="hello"
document.write(aa);
}
-----------------------------

か、aaをグローバル変数に~すればよさそうなもんですけど、どっちにしろhello.jsを触れないんじゃちょっと出来ないかと。


aa=helloはaisatsuのfunction内で消えちゃうので、どこにも引っ張り出せないように思います。





http://www.tohoho-web.com/js/function.htm
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
hello.jsをいじらないでといったのはfunction aisatsu()を維持したかったためだったんですが、それ以外はいじってもらってよかった気がします。変な制約を作ってしまって申し訳ありませんでした。でも、functionで定義(?=用語がわかりません)した構文はそのままではfunctionから持ち出せないんですか?それが分かっただけでも大変参考になりました。ありがとうございました。

お礼日時:2007/10/17 23:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qfunctionから別のfunctionを実行したい

よろしくお願いします

今JavaScriptで
function a(){
処理A
}
function b(){
処理B
}
function c(){
処理C
処理Aをして終わり
}
と言うことをしたいのですが

function a と同じコードをcに書くのが大変なので
function cからaを呼び出して実行することができないかと考えています

検索も色々してみたのですが
これと言った答えがなかったので質問しました
よろしくお願いします。

Aベストアンサー

他の箇所から、function a()をコールするときと同様に、function c()内でfunction a()をコールすることができます。

function c()
{
処理C
a();
}

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Q外部ファイルを実行

javascriptで
<script type="text/javascript" src="test.js" ></script>
を記述すると、
HTML読み込み時にtest.jsを実行するのですが、
ボタンクリック時に外部ファイルを実行するコードはどのように記述すればいいのでしょうか?

よろしくお願いします。

Aベストアンサー

当方、本日手が空いたので色々試行錯誤してみましたが
javascriptを動的に呼び出すのは少し難しいようですな。

[test.js]
function test() { alert('moge'); }
というファイルがあるとして、


[例1]
<input type='button' value='go' onclick='on()' />
<script type='text/javascript'><!--
function on(){
 document.write('<script type="text/javascript" src="./test.js"></script>');
}
// --></script>

これだとグローバルスコープでtest.jsの定義が使えるのですが、
画面が再描画されるため意図した動作をせず。
再描画させず、意図させた場所のみ更新させHTMLparseを行わせるという挙動ってできるのですかねぇ。


[例2]
<input type='button' value='go' onclick='on()' />
<script type='text/javascript'><!--
var jsStr = "";
function on(){
 getCode();
 eval(jsStr);
 test();
}

function getXMLHTTPObj(){
 try{
  return new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
(snip.)
 }
}
function getCode(){
 // make instanse
 var reqSend = getXMLHTTPObj();
 // get instanse
 if(reqSend){
  reqSend.onreadystatechange = function(){
   if(reqSend.readyState == 4 ){
    jsStr = reqSend.responseText;
   }
  }
  reqSend.open('POST', "./test.js", false);
  reqSend.setRequestHeader('content-type', "application/x-www-form-urlencoded;charset=UTF-8;");
  reqSend.send();
 }
}
// --></script>

XMLHTTPで呼んでevalしてみる。
使えなくもないですが・・・・
最初から<script>で呼べよという話に。


[例3]
<script src="common1.js"></script>
<script src="common2.js"></script>
<script src="common3.js"></script>
<script src="test.js"></script>(typeはsnip)
<input type="button" onclick='test()' />

スタンダード。
必要な奴は必要なときに逐次呼ぶのが普通。


外部読み込みはprototype.jsとかにありそうな気はしますけどね。
使ったことないですが。

当方、本日手が空いたので色々試行錯誤してみましたが
javascriptを動的に呼び出すのは少し難しいようですな。

[test.js]
function test() { alert('moge'); }
というファイルがあるとして、


[例1]
<input type='button' value='go' onclick='on()' />
<script type='text/javascript'><!--
function on(){
 document.write('<script type="text/javascript" src="./test.js"></script>');
}
// --></script>

これだとグローバルスコープでtest.jsの定義が使えるのですが、
画面が再描画さ...続きを読む

Q「関数が定義されていない」とのエラーが出る

こんにちは,よろしくお願いします。
何が何だか分からなくて困っています。
IEでは問題なく動くのに,Firefoxだと関数が定義されていないとのエラーが出ます。「<関数名> is not defined 」

スクリプトは,外部ファイル化してあります。キータイプの間違いもありません。何度も確認しました。

function aaa(){
 (スクリプト)
}

<body onload="aaa()">
のようにして呼び出しています。
いったい,何が悪いのでしょうか?

また,Operaだと,「リンク先のスクリプトを読み込むことができません」とのエラーが出ます。
元になるPHPファイルでは,
<script type="text/javascript" language="javascript" src="../javascript/AAAAA.js"></script>
のようにして呼び出しています。
もちろん,ファイルネームのタイプミスはありません。

ちなみに,スクリプトの内容は,日付関連のコードを記述しています。
試行錯誤している時に,他の日付関連のコードを実行したときに,
dayoption is not defined
というエラーが出たことがあります。
関数が存在しているのに,定義されていないと出るのは,もしかすると,日付関連の関数等の使い間違いではないかとも考えています。
使っているものは,Date()とgetYear()です。これらのうちのどちらかがFirefoxやOperaだとサポートされていないのでしょうか?

どうか御指導ください。よろしくお願いします。

こんにちは,よろしくお願いします。
何が何だか分からなくて困っています。
IEでは問題なく動くのに,Firefoxだと関数が定義されていないとのエラーが出ます。「<関数名> is not defined 」

スクリプトは,外部ファイル化してあります。キータイプの間違いもありません。何度も確認しました。

function aaa(){
 (スクリプト)
}

<body onload="aaa()">
のようにして呼び出しています。
いったい,何が悪いのでしょうか?

また,Operaだと,「リンク先のスクリプトを読み込むことが...続きを読む

Aベストアンサー

たぶんなんらかの凡ミスでしょうけど・・・・
firefoxでだめなら、firefoxのアドオンのfirebugで検証するのが一番です

Qjavascriptで別ファイルから変数を受け取る

って方法ありますか?あったら知りたいです。
A.htmlファイル
<script type="text/javascript">
var i=0;
</script>

B.htmlファイル
<script type="text/javascript">
h=1+i;
document.write("'<p>'+h+'</p>'");
</script>

もう一つ、このボタンを押したらB.htmlファイルに移り、変数も一緒に移動する方法も知りたいです。
A.html
<form action="B.htm" method="post" onclick="i">
<input type="submit"value="押す" onclik="">

変数iをBに送りたいです。

Aベストアンサー

下記の方法が思いつきました。
詳しい実装方法はググれば見つかります。
sessionStorageが簡単かと思いますが、注意としては古めのブラウザは非対応です。

方法1. URLパラメータに持つ

方法2. クッキーに持つ

方法3. sessionStorageに持つ

QHTMLファイル同士での値渡し

困っています。

HTMLファイルからHTMLファイルへ移動するときに、
HTMLファイル1でJavaScript で算出された値を
HTMLファイル2へ渡して使用したいのです。

showModalDialogだとダイアログにしか渡せないし・・・。
このように、値をそのまま次のページに渡すための方法を教えてください。
お願いします。

Aベストアンサー

すみません。うっかりしてました。

document.write(FORM[v1]);
では、v1を変数と認識してしまうので、エラーになってしまいますね。

document.write(FORM.v1);  // 「FORM.v1」です
あるいは
document.write(FORM["v1"]);
としてください。

Q呼出したjsファイル内で他jsファイルを呼出したい

hoge.htmlに
-----------------------------------------------
<script type="text/javascript" src="piyo.js"></script>
-----------------------------------------------
を記述してpiyo.jsを読み込ませました。

この状況で、piyo.js内でfuga.jsを読み込むにはどのような記述をすればよいでしょうか?

Aベストアンサー

>function JavaScriptLoader(src, callback){
>のcallbackの意味がまったく分かりません。
>関数の引数であるcallbackとどう繋がっているのでしょうか???
>callbackにはあらかじめ何を渡しておけば良いのでしょうか???

例えば、a.js、b.jsの順で読み込ませたい場合、a.jsを読み込みが完了したことを確認してから、b.jsを読み込ませることになります。
こういった(非同期の)処理の場合は、a.jsが読み込み終わったときに、ある関数を呼び出すようにする、という定石があります。その「ある関数」内でb.jsを読み込ませればよい、という仕組みです。

参考サイトに掲載されていたJavaScriptLoader関数はそのような仕組みでできており、ロード完了時に呼び出される「ある関数」が第2引数であるcallbackです。
#このような関数のことを、コールバック関数と呼びます。それが引数callbackの名前の由来です。
#http://e-words.jp/w/E382B3E383BCE383ABE38390E38383E382AFE996A2E695B0.html

>if (sc.readyState == 'complete') callback(sc.readyState);
>if (sc.readyState == 'loaded') callback(sc.readyState);

このような内部構造はとりあえず理解しなくても大丈夫だと思うので、簡単な使い方だけ書いておきます。

JavaScriptLoader("a.js", function(state) {
 // a.js内の関数などを利用する処理
 JavaScriptLoader("b.js", function(state) {
  // a.js, b.js内の関数などを利用する処理
 });
});

#callback関数である無名関数の第一引数にstateを指定していますが、これはなくてもOKです。

>2つめのリンクからJSLoderをダウンロードして試してみました。
>しかし、これはあらかじめjsloader.jsを読み込んでおかなければならず、piyo.js内では...

jsloader.jsの中身をpiyo.js内にコピーしてしまえば良い(ライセンスには気をつけましょう)、といえばそれまでなのですが、結構量あるのでJavaScriptLoaderの方が手軽かもしれませんね。

#両方を組み合わせる手もありですが、それはそれで冗長かな。

以上です。
解決されることをお祈りします。

>function JavaScriptLoader(src, callback){
>のcallbackの意味がまったく分かりません。
>関数の引数であるcallbackとどう繋がっているのでしょうか???
>callbackにはあらかじめ何を渡しておけば良いのでしょうか???

例えば、a.js、b.jsの順で読み込ませたい場合、a.jsを読み込みが完了したことを確認してから、b.jsを読み込ませることになります。
こういった(非同期の)処理の場合は、a.jsが読み込み終わったときに、ある関数を呼び出すようにする、という定石があります。その「ある関数」内でb.js...続きを読む

Q