• ベストアンサー

<HEAD>内と<HEAD>後のfunctionの違いは?

初歩的な質問かもしれませんが、 <HEAD><SCRIPT> function・・・・・・・ </SCRIPT></HEAD> の中に、記述するfunctionと、 </HEAD> <SCRIPT> function・・・・・・・ </SCRIPT> のように</HEAD>後に、記述するfunctonの 違いはなんでしょうか? 働きとは役目とか、動きが違うのでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Blaise
  • ベストアンサー率33% (13/39)
回答No.2

<HEAD>パートと<BODY>パートに書いたちがいによって動き がちがうということはないでしょう。 しかし、<HEAD>パートに置いても<BODY>パートに置いても どちらでもよいというわけではありません。 説明がながくなりますので、こちらにUPしておきました。 http://www.geocities.jp/b1aise1623/prog/js/tips/701346/func.htm

honey_sweets
質問者

お礼

教えていただいたURLを見て、納得できました。 なるほどですね。 上手く使い分けてみたいと思います。 ありがとうございました。

その他の回答 (2)

  • Hasty
  • ベストアンサー率73% (19/26)
回答No.3

<SCRIPT>が</HEAD>~<BODY>の間に書かれているだとしたら、それはHTMLとしては正しくありません。本来そこに<SCRIPT>を書くことはできず、ブラウザが「まぁいいよ」と解釈してくれるから実行できるだけです。で、その扱いは<HEAD>~</HEAD>の間に書いたのと同じです。 ちなみに、functionの位置は<HEAD>~</HEAD>の間でも<BODY>~</BODY>の間でも、働きも役目も変わりません。どこに書くかは好みの問題です。 重要なのはそれが実行されるタイミングで、オブジェクトによってはwindow.onloadイベントの発生後(HTMLが全て読み込み終わった後)でないと使えないものがあるので、そういうのをそれ以前のタイミングで使おうとするとエラーとなってしまいます。

honey_sweets
質問者

お礼

先の方の説明と合わせて、理解することができました。 記述の際には注意します。 ありがとうございました。

noname#18558
noname#18558
回答No.1

特に違いはありませんよ。 構文的に、head内に記述するのが一般的ですが。

honey_sweets
質問者

お礼

わかりました。 詳しくは他の方のコメントを参考にしてみます。 ありがとうございました。

関連するQ&A

  • Perlにfunctionってないんですか?

    超初歩的な質問ですみません。 今までJavaScriptやPHPを使ってきたので、関数はfunctionで記述していました。 今回Perlも覚えようと思って勉強していたらsubという見たことのない文字を見つけまして。 調べて見るとJavaScriptやPHPのfunctionと同じような働きをしているような印象を受けました。 そこでふとPerlにfunctionって無いのだろうかと思い、調べてみると以下のサイトを発見しました。 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k04.htm これによるとfunctionはあるそうなのですが、ここに書いてある通りに記述してみるとエラーになりました。ちなみにGoogle検索で「Perl function」と入れるとこのサイトがトップに来ましたが、それ以下の検索結果でそれらしいものは出てきませんでした。 Perlでfunctionは存在するのでしょうか? するとしたらどのように使い、またsubとの違いはどのようなものなのでしょうか? 質問攻めで恐縮ですが、何卒宜しくお願い致します。

    • ベストアンサー
    • Perl
  • Java Scriptの書き方について教えて下さい。

    Java Scriptの書き方について教えて下さい。 独学なので超初歩的な質問ですが、Java Scriptを外部ファイルにしたいと思っておりますが、外部ファイルには何を記述し、(<head></head>、<body></body>)の中には何を書いたらよくかわかりません。 現在はタグの中にスクリプトを記述しています。あるいは意味も判らずにコピペしています。 初心者にも判りやすい参考書かサイトをご存じでしたら教えて下さい。 宜しくお願い致します。

  • jQueryの $(function(){ });

    jQueryについて基本的な質問をさせてください。 基本的にjQueryは、お約束として $(document).ready(function(){ }); と記述し、その中に実行処理を書いていくと思うのですが loadを待たずに実行させたい時は $(document).ready(function(){ });は記述しなくてもよいのでしょうか? どの本をみてもjQueryのお約束事みたいに $(document).ready(function(){ }); を必ず書くと載っています。 自分でやってみたところ、記述しないでも問題なく動いているのですが、 やっぱり $(document).ready(function(){ }); を記述しないと、何か問題があるのでしょうか? ご存知の方、教えてください。 どうぞ宜しくお願いたします。

  • <head>外での、外部css、外部jsの読み込み

    基本的な質問で失礼します。 <head>内ではなく、たとえば<body>内に外部cssと外部jsを読み込む際、 今まで、以下のようにスクリプトを書いて読み込んでおり、うまくいっていました。 <script type="text/javascript"> document.write('<link rel="stylesheet" type="text/css" href="hoge.css" media="screen,print">'); document.write('<script src="hoge.js" type="text/javascript"></script>'); </script> ところが、あるサイト作成時、上記スクリプトでは効かなくなってしまいました。 (HTML 4.01 Transitional) そこで、<head>内で書くように、以下のように記述したら、うまく機能しました。 <link rel="stylesheet" type="text/css" href="hoge.css" media="screen,print"> <script type="text/javascript" src="hoge.js"></script> 自分の中では、この記述は<head>内で書くときであって、<head>外ではうまく読み込めないと思っていたのです。 そもそも、<head>外なのに、このような書き方をしてよいものでしょうか? まぁ、きちんと読み込めていて、動きも期待通りだから良いのでしょうが… 皆さん、どのように読み込んでいるのかなっと思い質問してみました。 どうぞ宜しくお願いいたします。

  • インクルードしているheadの中に記述するには?

    htmlのヘッダーを関数化して全画面でインクルードしています。 ある画面でだけ、ちょっとしたjavascriptの記述をヘッダー内に記述したいのですが、どうしたらいいでしょうか? 現状ではヘッダー関数の中でJSを外部ファイルで読み込んでいますが、JSのスクリプトでwindow.onloadなどを使う場合、すべてのページに該当してしまいよろしくありません。 うまい方法がありましたらご教授宜しくお願いします。 またheadの終わりからbodyの始まる間にscriptを書いても問題はないのでしょうか? 動作的にはエラーは通知されませんでしたが。 原則的にはheadの中だと思うので。 <html> <head> </head> ●ここにjavascriptを記述 <body> ・・・ 【環境】 php5

    • 締切済み
    • PHP
  • <body>にwindow.onload = functionを2つ設定すると、最後に書いたイベントだけが実行されてしまいます。

    <body>タグにonloadイベントを実行させる2つの外部jsを<head>内に設置し実行すると、 最後に記述したイベントだけが反映されてしまいます。 http://blog.webcreativepark.net/2008/02/26-185844.html を参考にいろいろといじってはみたのですが、 function addEvent(elm,listener,fn){ try{ elm.addEventListener(listener,fn,false); }catch(e){ elm.attachEvent("on"+listener,fn); } } js初心者でして、上の関数の中にどのように記述をすれば良いのかわかりません。 IE6・IE7・safariで動作させるには、実際にどのようなソースを書けばいいのでしょうか。 どなたかご教授いただけますでしょうか。 <head>内の外部jsは、以下のように記述しました。 <script src="/A.js" type="text/javascript"></script> <script src="/B.js" type="text/javascript"></script> </head> 外部jsのソースは以下になります。 //A.js window.onload = function() { var blur = function () { this.blur() }; for (var i = 0; i < document.links.length; i++) document.links[i].onfocus = blur; } //B.js window.onload = function() { prepZooms(); insertZoomHTML(); zoomdiv = document.getElementById(zoomID); zoomimg = document.getElementById(theID); } 以上になります。宜しくお願い致します。

  • window.onloadでのfunction

    javascript初心者で質問自身が僕が解決したい問題の原因かどうかも解らずに質問しています。 <script type="text/javascript"> <!-- function hoge_1() { ~処理1~ } function hoge_2(hiki_suu) { ~処理2~ } window.onload = function() { document.getElementById("button_1").onclock = hoge_1; document.getElementById("button_2").onclock = hoge_2("watasu"); } // --> </script> 上記のようにページheadにscriptを配置したとします。ページ上のbutton_1がクリックされると処理1が実行されるのですが、hoge_2のように引数を使ってしまうと、onload時に処理2を実行してしまい、button_2は有効に動作しません。 functionの引数の問題なのか、window.onloadの作法なのか、なにが悪いのか全く解らず質問しています。 ご指導のほどよろしくお願いいたします。

  • 別ファイルのfunctionの読み込み方

    こんにちは 外部ファイル 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> ------------------------------------

  • ヘッド内ではなく、外部jsで実行させるには?

    <script type="text/javascript">new wrapScroll('movable-right','goodsbox_sc');</script> これを外部javascriptで読み込ませたところ、エラーになりました。 どういった表記をすれば外部から実効させれるのでしょうか? 以下が私が記述したソースです。 function { new wrapScroll('movable-right','goodsbox_sc'); } ヘッド内にこれがあるとなんだか気持ち悪さが残りましたので、どうにか外部で実行させたいです。 お願いします。

  • ヘッドの大きさの違いによる飛距離の違いについて質問です。

    ヘッドの大きさの違いによる飛距離の違いについて質問です。 ドライバーのヘッドの大きさが他のフェアウェイウッドよりも大きいのはなぜなのでしょうか。 ヘッドが大きいほうが飛距離がでるということなのでしょうか?