• ベストアンサー

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

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

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

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

なぜ、わざわざ function { } の中に入れたの?しかも匿名関数 new wrapScroll('movable-right','goodsbox_sc'); だけでよいはず。 わざわざ匿名関数に入れて実行するなら (function { new wrapScroll('movable-right','goodsbox_sc'); })(); とする。

egtomo
質問者

お礼

早速のご回答ありがとうございます。 匿名関数 new wrapScroll('movable-right','goodsbox_sc'); だけも試したのですが、エラー(実行してくれない)になります。 (function { new wrapScroll('movable-right','goodsbox_sc'); })(); も同じくエラーとなってしまいます。 実行させる順番なのかと記述を上下してみたのですが、 結果は同じでした。 head内だけでしか動かない指定なんでしょうか? printのように、実際に書き込ませるような感じはできないでしょうか? ※このスクリプトは任意の箇所がスクロールでついてくる範囲の指定です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

順番じゃないですか? headの一番最後で外部スクリプトを読み出すようにしたらどうですか。

egtomo
質問者

お礼

ご回答ありがとうございます。 読み込み自体は、head最下部で行っております。 インポートで呼び出して、head内をすっきりさせたかったんですが、どうも関数の引継ぎができない記述らしいので、もうぐったりです。 document.write('<script type="text/javascript" src="js.js"></script>');

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • <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>外なのに、このような書き方をしてよいものでしょうか? まぁ、きちんと読み込めていて、動きも期待通りだから良いのでしょうが… 皆さん、どのように読み込んでいるのかなっと思い質問してみました。 どうぞ宜しくお願いいたします。

  • 外部読み込みで動かないときの対処法

    プログラミングの入口にも立っていない初心者です。 あるプログラムを導入することになりました。 htmlに直接記述した場合はjsが動いていることが確認ができるのですが、外部読み込みにした場合、なぜか動きません。 記述方法がまちがっているのでしょうか? サイト運営の手間を考えて、絶対外部読み込みにする必要があります。 。 《動く…jsをhtmlに直接記述》 <head> <!-- 文字コードなどの記述は省いています --> <meta http-equiv="Content-Script-Type" content="text/javascript" /> </head> <body> <!-- その他のhtml記述は省略 --> <script type="text/javascript"> <!-- document.write(unescape("%3Cscript src='" + document.location.protocol + '//www.sample.com/js?pcid=PC-123456-A' + "' type='text/javascript'%3E%3C/script%3E")); // --> </script> <script type="text/javascript"> <!-- (function() { var pc = new predicta.PClick(); pc.start(); })(); // --> </body> 《動かない…js外部読み込みの記述》 <head> <!-- 文字コードなどの記述は省いています --> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <script type="text/javascript" src="http://www.sample.net/hoge/js/sample.js"></script> </head> ------------------------------------------------------ js/sample.jsの記述 ------------------------------------------------------ document.write(unescape("%3Cscript src='" + document.location.protocol + '//www.sample.com/js?pcid=PC-123456-A' + "' type='text/javascript'%3E%3C/script%3E")); (function() { var pc = new predicta.PClick(); pc.start(); })(); ちなみに、その他にも外部読み込みし、動いているJavaScriptはあります。 ご教示のほど、どうぞよろしくお願いいたします。

  • 外部 .js で

    index.html 内の head タグ間に <script type="text/javascript" src="./js/test2.js"></script> また、index.html と同階層にある js ディレクトリの内の test2.js の内容は document.write("test") だけです。 この条件で(というのは、最終的に別にテキストを出したいだけというわけではないので)、body の任意の場所に test を表示 [記述] させる方法を教えてください。 body の適当な場所に <script type="text/javascript"></script> と書いても、何も現れません(ソースで確かめています)。根本的におかしいのかもしれませんが、わかりません。 必ず、これら条件でお願いします。

  • 外部ファイルを実行

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

  • jQuery.jsを使ったhtml外部読み込み

    教えてください。 現在Jqueryを使用して外部htmlを読み込ませようとしていますが、 うまくいきません・・・ ■本体html <head> <script src="js/jquery-1.8.3.min.js"></script> </head> <body> <script type="text/javascript" src="sample.js"></scrip> <div id="sample"></div> </body> ■sample.js // JavaScript Document $(function(){ $("#sample").load("sample.html"); }); ■読み込ませるsample.html 特に設定なし このような感じですが、全然読み込めません。。。 javascriptを外部リンクにしているのは、読み込むhtmlが複数ある為、 headの見栄えが悪くなるからという個人的な意見です・・・ 済みませんがお知恵をお貸しください!!

  • JSP内で外部jsファイルを指定する

    昨日から散々悩んでいます。 tomcatのJSPから外部jsファイルが読み込めません。 最初htmlのみでテストしたのですが そのときは何の問題も無く動きました。 URLの指定の仕方かなと思いましたが、 cssのほうは同じ指定の仕方で効いています。 <!---------- JSP内容 ------------------------> <!-- [テスト]ボタン押下でscript実行 --> <html> <head> <title>テスト</title> <script Language='JavaScript'    type='text/javascript' charset="shift_jis" src='/Test/script/Script.js'> </script> <script language='JavaScript' type='text/javascript'> <!-- function test(){ jstest(); } function test1(){ alert("test1:OK"); } // --> </script> <link rel="stylesheet" href="/Test/css/Style_ver1.css" type="text/css"> </head> <body> <form> <input type='button' class="button" value='テスト' onclick="test()"> </form> </body> </html> <!---------- 外部js内容------------------------> function jstest(){ alert("jstest:OK"); } <!---------------------------------------------> onclick="test1()"にすると動きます。 以前に作られた別アプリケーションのJ2EEのソースを見ると、 src=<c:url とcoreタグが使用されています。 coreタグの使用なしにURLを書くことはできないのでしょうか? すいませんが、どなたか教えてください。 宜しくお願いします。

    • ベストアンサー
    • Java
  • これだけ外部スクリプトで動かない

    <script type="text/javascript"> <!-- kikan=4; function new4W(writeday){ if((new Date()-new Date(writeday))/(24*60*60*1000)<=kikan) document.write("<img src='/img/ic/new036.gif'>"); } // --> </script> <script>new4W("2008/03/16")</script> 指定した日付(この場合 2008/03/16)から4日間、 画像を表示させるものです。<body>~</body>でちゃんと動きます。 <SCRIPT LANGUAGE="JavaScript" SRC="http://~/js/newmark.js"></SCRIPT> <script>new4W("2008/03/16")</script> 外部スクリプトにしました。そのまま内容を移行しましたが動きません。 呼び出しの部分を <head>~</head>に挿入しても、それでも動きません。 指定を絶対パス・相対パスいづれでも動きません。 これとは別に「3月18日は○○さんの誕生日です」なる JavaScript を 外部から引いてますが、こちらは問題なくできています。 指定URLも直接移動で内容が表示されるのを確認しました。 どうかご指導いただければと思います。よろしくお願いします。

  • 外部jsファイルにFlashを記述

    htmlファイル内にflash(swfファイル)を表示させる時に そのhtmlファイルに直接ソースを記述するのではなく、 該当部分に<script type="text/JavaScript" src="○○○.js"></script> と記述。 外部jsに"document.write"を使用してswfのソースを記述し、 上記htmlからjsファイルをリンクさせて読み込ませる、 という方法を使っている方がいらっしゃると思いますが、 私はいつも直接htmlファイル内にswfファイルのソースを 入れておりまして、上記の方法を使う意味がよくわかりません。 なせそうするのか?メリットがあるのではないかと思っておりますが、 ご存知の方いらっしゃれば教えていただけますか? JavaScriptもflashもまだ勉強中ですので、文章がわかりずらいかも しれませんが、よろしくお願い致します。

  • 外部スクリプトでどうしてもエラーが出ちゃう!

    こんにちわ。 早速なんですが、外部スクリプトに文章を入れてhtmlに記述したスクリプトでその文章を読み出そうとしてるんですが、 つまり外部スクリプト(ファイル名:test.js)の中は abc="あ~テストテストってこんな感じに書いて"; des="<FONT size="-1">にこめのテスト</FONT>"; って書いてhtmlの中に書くスクリプトは <html> <head><SCRIPT src="test.js"type="text/javascript"language="javascript"></SCRIPT> </head> <body> <SCRIPT type="text/javascript"> <!-- document.write(abc); // --> </SCRIPT> <SCRIPT type="text/javascript"> <!-- document.write(des); // --> </SCRIPT> </body> </html> って感じなんですが、これを開くと エラー';'がありません。 エラー'abc'は宣言されていません エラー'des'は宣言されていません ってでくるんです。もちろん、test.jsへのパスはあってます。 何か書き方が違っていましたら教えてください。

  • jQuery 読み込んだ外部htmlファイル内での関数の実行ができない

    jQuery 読み込んだ外部htmlファイル内での関数の実行ができない お世話になります。 iwatuturuturu と申します。 jQueryで読み込んだ外部htmlファイル内での関数の実行ができません。 [index.html]にてjQueryのloadを使用し、同じ階層内の[basic.html]のファイルを読み込んでいます。 slideToggleをしようしてアコーディオンをつけたいのですが、外部htmlの[basic.html]のアコーディオンみ動きません。 【ソース[index.html]】------------------------------------------------------------ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="../js/jquery.js"></script> <script> $(function(){ //外部ファイルの読み込み $("#basic").load("basic.html"); // アコーディオン $('dt').click(function(){ $(this).next().slideToggle('slow'); }); }); </script> </head> <body> <dl class="accordion"> <dt>アコーディオン</dt> <dd>ここの表示非表示が切り替わる</dd> </dl> <div id="basic"></div> </body> </html> 【ソース[basic.html]】------------------------------------------------------------ <div style="border:1px solid #666666"> <p>読み込み込まれるテキスト</p> <dl class="accordion"> <dt>ここをクリック</dt> <dd>ここの表示非表示が切り替わる</dd> </dl> </div> ------------------------------------------------------------------------------------ もともと外部より読み込まれたファイル内のjavasicriptは実行されない仕様なのでしょうか? また、他のやり方で同じ動作を実現する方法などありましたらご教授お願い致します。 よろしくお願いいたします。