外部JSファイルで値を受け取る方法

このQ&Aのポイント
  • 外部JSファイルで値を受け取る方法について教えてください。
  • script要素のsrc属性に値を指定して外部JSファイルに渡す方法を教えてください。
  • script要素のsrc属性に値を指定して外部JSファイルに渡す方法についての情報が見つかりませんでした。
回答を見る
  • ベストアンサー

外部JSファイルで値を受け取る方法

以下の記述 <script src="…">★</script> で★の部分に「値」を書くことによって外部JSファイルに値を渡せるようです。がどう受け取るのかが判りません。 ★に記述するのはあくまでも値です。「var a = "…";」等の式ではありません。具体的にはGoogle+の「+1 ボタン」の設置の際のコードで <script src="https://apis.google.com/js/platform.js" async defer> {lang: 'ja'} </script> のように記述します。こうすると「Google でおすすめする」となり、「{lang: 'en'}」とすると「Recommend this on Google」となります。(反映されたのはIE11。Chromeでは効かない) なので少なくともIEではオブジェクトの受け渡しができているようです。 script要素でsrcを書くときにも閉じタグが必須である理由が今までわからなかったのですが、このためなのかなと今更ながらにカルチャーショックを受けました。 一応ググってみたのですが、グローバル領域に変数を定義してしまう方法や、クエリパラメータで指定する方法ばかりがヒットしてしまい、上記の方法に関する情報は見つけられませんでした。 https://apis.google.com/js/platform.js を丁寧に読めば判るはずですが、コードが圧縮されていて非常に読みにくくなっており断念してしまいました。 <script src="…">★</script> で★の部分に「値」を書いてそれを外部JSファイルで受け取る方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

こんにちは。 方法はNo1様が回答した通りと推測します。 ごく簡単な例を・・・ <test.js> (function(){  var s = document.getElementsByTagName("script");  var obj = JSON.parse(s[s.length-1].innerHTML);  var i, txt = "";  for(i in obj)   txt += i + " = " + obj[i] + "<br>";  document.getElementById("result").innerHTML = txt; })(); <html> <!DOCTYPE HTML> <html lang="ja"> <head><title>TEST</title></head> <body> <div id="result">result</div> <script type="text/javascript" src="test.js"> { "hoge": "hogehoge", "fuga": 111, "piyo": 222 } </script> </body> </html>

pringlez
質問者

お礼

ソースをきちんとは解析できていないのですが以下のあたりの k.___gu=b}var b=Ub("cu"),e=q.scripts||q[pa]("script")||[],d=[],f=[];f[F][E](f,Ub("us"));for(var g=0;g<e[I];++g)for(var h=e[g],l=0;l<f[I];++l)h.src&& 0==h.src[H](f[l])&&d[F](h);0==d[I]&&0<e[I]&&e[e[I]-1].src&&d[F](e[e[I]-1]);for(e=0;e<d[I];++e)d[e][M]("gapi_processed")||(d[e][v]("gapi_processed",!0),(f=d[e])?(g=f.nodeType,f=3==g||4==g?f.nodeValue:f.textContent||f.innerText||f.innerHTML||""):f=void 0,(f=Yb(f))&&b[F](f));a&&(d={},Xb(d,a),c[F](d)); scripts, q[pa]("script"), src, innerText, innerHTML 等のキーワードから確かにそうっぽいですね。特に q=document pa="getElementsByTagName" という定義があるので。 わざわざサンプルを作成していただき、ありがとうございました。Chromeでも動くことが確認できました。(でも、だとするとgoogle+ボタンの設置で、なぜChromeでは効かないのか謎ですが) 引数を渡す仕組みがあるのかと思っていたのですが、そうではなく独自にがんばっていただけということでちょっと拍子抜けしてしまいました。 しかし参考になりました。ありがとうございました

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

DOMで、src属性のあるscriptタグの中身を順に見ているのだと思います。

pringlez
質問者

お礼

なるほど。そういうことですか。 引数を渡せる仕組みが用意されているわけではないのですね。 ちょっと拍子抜けしてしまいました。 参考になりました。ありがとうございました

関連するQ&A

  • 外部呼出しのjsファイルについて

    外部呼出しするファイルを直接HTML内に記述したいのですがどのようにしたらよいのかわかりません。 ご存知の方がいましたらお教えください。 通常の方法は分かるのですが... <script LANGUAGE="javascript" src="xxx.js"></script> このような形で記述したいです。 <script LANGUAGE="javascript"><!-- src="xxx.js"; //--> </script>

  • IE8で外部jsファイルが読み込めない

    htmlでjavascriptを使用しようとhtmlファイルとjsファイルを同階層に置き、下記のように外部jsファイルを読み込んでいます。 <script type="text/javascript" src="./com.js"></script> しかし、IE8でそのhtmlを開くと 「メッセージ: 文字が正しくありません。ライン: 1文字: 1コード: 0 URI: file:///C:/Users/PCUser/Desktop/test/common/js/com.js」 というエラーが発生してjavascriptが読み込めません。 秀丸でsrc="./com.js"をクリックするとソースが表示されるのでパスは間違えていないと思います。 また、簡単なボタン押下時にalertを表示するscriptを作成して確認したところ、FIRE FOXでは正常に動きましたが、IE8ではやはり動きませんでした。 文字コードはhtml、javascript共にshift-jisです。 他にjavascriptを読み込めない原因は何かありますでしょうか? よろしくお願いいたします。

  • 外部 js ファイルの動的読み込み

    通常、HTML で外部の Javascript ファイルを読み込む必要がある場合、 <script type="text/javascript" src="****.js"></script> としますが、これを Javascript のコード内で行いたい場合、何か方法はあるでしょうか? いわゆる、Perl での use や php での require のようなことを Javascript で実現したい - 動的に js ファイルを読み込みたいのです。 以上、お分かりになる方、よろしくお願いします。

  • 外部ファイルを実行

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

  • 外部JSファイルが読み込まない。

    javascriptの勉強をし始めて、二日目の初心者です。 jsファイルを使って、画像をIEで表示させたいのですが、上手く読み込んでくれません。 どうか、教えてください。 ---html----------------------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="common.js" type=text/javascript" charset="UTF-8"> </script> <script src="showImage2.js" type="text/javascript" charset="UTF-8"> </script> <title>キャラクターの表示</title> </head> <body onlaod="main()"> <noscript>JavaScriptを有効にしてください</noscript> </body> </html> ----js------------------------------------------------------------------------------ var img; function main() { img=document.createElement("img") document.body.appendChild(img); img.src="pcStay.png"; } ------------------------------------------------------------------------------------

  • html5.jsを使うと、IE8以下で真っ白になる

    html5で作成したもので、ie8以下に対応させるため、 <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> を使用しましたが、IEでの開発モードで、標準、互換モードともに、ie8以下真っ白になってしまいます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <title>~</title> で書いています。 <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> の部分をなくすと、ie8以下では、html5を無視した形で表示されます。 この原因は何でしょうか。エンコードを疑いましたが、どうやらこのjsのようなのですが。

    • ベストアンサー
    • HTML
  • 呼出したjsファイル内で他jsファイルを呼出したい

    hoge.htmlに ----------------------------------------------- <script type="text/javascript" src="piyo.js"></script> ----------------------------------------------- を記述してpiyo.jsを読み込ませました。 この状況で、piyo.js内でfuga.jsを読み込むにはどのような記述をすればよいでしょうか?

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

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

  • javascriptの外部ファイル読み込みの不具合

    質問させて頂きます。 javascript初心者です。 現在サイト作成にあたり、jsを組み込んでおります。 ajaxmailを設置しようと、参考サイトの手順通りに行ったのですが、 <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> の記述をすると、他のjsが動作しなくなってしまいます。 現在読み込んでいるものをコピペさせて頂きます。 <script src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script src="./js/mapstyle.js"></script> <script src="./js/modernizr.custom.min.js"></script> <script src="./js/jquery-1.10.2.js"></script> <script src="./js/hoge.js"></script> <script src="./js/jquery.smooth-scroll.min.js"></script> <script src="./js/jquery-ui-1.10.3.custom.min.js"></script> <script type="text/javascript" src="./js/protoculous-effects-packer.js"></script> <script type="text/javascript" src="./js/lightview.js"></script> 下2行がajax設置の際に読み込むものです。 lightview.jsだけの場合は機能しています。 どなたかご教示の程、よろしくお願い致します。

  • 外部ファイル

    HTMLに、このような記述があり <script type="text/javascript" src="●●●.js"></script> 外に、「●●●.js」 というファイルがあります。 これは、「外部のjavascript」ファイルということでしょうか? また、この、「外部のjavascript」ファイルを開く(見る)には、どうしたらいいのでしょうか? ^^ どこか、おすすめのjavascriptのサイト、ご存知でしたら、教えてください。。。^^ (CSS外部ファイル。までは意味、わかるのですが、 javascript の関係はよくわかりません)

専門家に質問してみよう