• ベストアンサー

Javascriptのクエリ(パラメータ)取得

Javascriptでクエリが取得できません。 現在、行おうとしていることは <html> <body> ~ <script src="http://www.hoge.jp/example.js?id=1"></script> ~ </body> </html> のidの値をexample.jsでクエリ取得し、example.js内でidを用いた計算を 行おうと思っています。 調べたところ、http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47607&forum=28&4 のような情報はありましたが、scriptタグの事前にファイルを読み込ませると言った方法でした。 直接jsファイル内でクエリが読み込める方法がありましたら教えてくれませんか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

PHPがつかえる環境であれば・・・ <script src="http://www.hoge.jp/example.php?id=1"></script> でパラメータを$_GETでわたせばいいんじゃない? javascriptだけでやるなら document.getElementsByTagName("script")でスクリプトタグを 拾って、forでまわしながらsrcの値をみて、?以降のデータを パラメータのように評価すればいいでしょう? でもこれってファイル名が必要になりますので、js内で自分自身 のファイル名を宣言する必要があるし、ファイル名の競合だって 想定されます。 それを考えれば、スクリプトタグの前にグローバル変数として 提示する方がましかなぁ・・・ いずれにしろ確実な方法ではないのでとてもお勧めできません。 自己責任と気合でやるしかないですね

yotch_haru
質問者

お礼

訳あってスクリプトにはphpは使えません。 javascriptだけでやるなら?以降のデータを取得するようにしてみます。 幸いにもファイル名は固定なので可能のように思えます。 スクリプトタグの前に何かを挿入することも不可能な状態となっています ので、こちらの方法で試してみたいと思います。 本当にありがとうございました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

やりたいことが不明確です。サーバーサイドでJavaScriptを動かしたいのですか?それともブラウザ上で動かすときに、そのURLを参照したいということ? 後者であれば、お書きのページにあるDOMを使った方法で、スクリプトタグの内容文字列を取得できます。 サーバーサイドでCGIでJavaScriptが動く環境なら前者も出来ると思います。

yotch_haru
質問者

補足

イレギュラーなのは分かっておりますが、 事前条件からjsファイルのクエリからjsファイル内に値を渡すという 方法を取ることになりました。 jsファイル内にはデータを取得するファイルがあり、実際にクエリを 必要としているのはそのファイルです。 <script src="​http://www.hoge.jp/example.js?id=1"></script> example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。 そのjsファイル内で 『data.php + idのクエリ値』 という形式にしてDBから値を取得したいのです。 回りくどい方法なのは重々承知の上で クエリを取得する方法がありましたら教えてもらえますでしょうか。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ちゃんとやりたいなら、jsファイルにPHPやCGIを割り当てるのが 妥当でしょう。 どうしてもjavascriptだけでやるとなると、かなりイレギュラーな 処理になります

yotch_haru
質問者

補足

イレギュラーなのは分かっておりますが、 事前条件からjsファイルのクエリからjsファイル内に値を渡すという 方法を取ることになりました。 jsファイル内にはデータを取得するファイルがあり、実際にクエリを 必要としているのはそのファイルです。 <script src="​http://www.hoge.jp/example.js?id=1"></script> example.jsのファイル内でdata.php(DBとの接続の為のファイル)を呼び出しています。 そのjsファイル内で 『data.php + idのクエリ値』 という形式にしてDBから値を取得したいのです。 回りくどい方法なのは重々承知の上で クエリを取得する方法がありましたら教えてもらえますでしょうか。

関連するQ&A

  • 空き番号取得について

    テーブルから空き番号取得するという方法を 探しているのですが http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22751&forum=26&6 にあったように「今入っている数字の次の番号」を 取得する方法はわかりましたが 先頭の判断をSQLで判別するには どのようにしたらいいでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • ServletでSessionの一覧を取得

    ServletでSessionの一覧を取得を取得し、 選択したセッションIDを無効するという画面を作成したいと 思っています。 ↓下記URLではServlet API v2.1 以降で廃止されたとあります。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=401&forum=12 しかしながらTomcatの管理画面(Tomcat Webアプリケーションマネージャ ) http://localhost:8080/manager/html の画面ではセッションという項目があってそこをクリックするとまさに やりたかったことが実現されています。 なにか特殊な方法を使用して作成しているのでしょうか。

    • ベストアンサー
    • Java
  • jsp実行時にダウンロードダイアログが表示される

    こんにちは 昨日に引き続き質問させてください。 以下のコードのJSPを実行すると ファイルのダウンロードダイアログが 表示されてしまいます。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25429&forum=12&8 に似たような質問があったのですが 解決していないようです。 ここにいらっしゃる方ならご存知かと思い質問しました。 ご回答よろしくお願いします。 ===================================================== <%@page contentType="text/html ; charset=Windows-31J"%> <HTML> <HEAD> </HEAD> <BODY> <% String test="test"; %> <%=test%> </BODY> </HTML>

  • クエリの取得について

    イメージ的には、123.html から abc.js に クリエとして ?1 のデータを送ってるつもりなのですが abc.js ファイル側では、?1 が取得がされていない様なのですが何故なのでしょうか? 何か記入間違い又は記入漏れなのでしょうか? 実行すると、abc.js ファイル側での if の条件が成立しません。 結論的には、abc.js ファイル側で if の条件を成立させたいのですが、どうしたら良いのでしょうか?教えて下さい。 ◆ 123.html ファイル <html> <head> <script type="text/javascript" src="abc.js"?1></script> </head> ・ ・ ・ ◆ abc.js ファイル aaa=window.location.search.substring(1) if(aaa=="1"){var Ima = "おはよう";} ・ ・ ・

  • ASP.NETのサーバー移行に伴うエラーについて教えて下さい

    こんばんわ。 localの開発環境で作ったASP.NETのアプリケーションを、サーバーに置いて実行するとエラーが出てしまいます。 色々、調べてhttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12465&forum=7&1のサイトと同じ事を行ったのですがエラーは 解消できず困っています。 ご存知の方、ご教示下さいませ。 よろしくお願い致します。

  • 同HTML内で2種のJ-Queryを使用したい

    複数のjQueryを使用し、タブメニュータイプのものと自動スライドショータイプのを 同じHTML内にいれようとしていますが、1つのみしか作動せずJavaScriptエラーがでてしまいます。 片方ずつで行うと作動するのですが、同じHTMLに2種組み込むとうまくいきません。 同じ質問があり参考にさせて頂いたのですが良くわかりません。 複数使う場合の記述方法があるということもサイトで知ってやってみたりしたのですがうまくできませんでした。 http://stacktrace.jp/jquery/with_other_lib.html 使用しているものは以下です。 -------------------------------------------- <!-- jQuery --> <script type="text/javascript" src='/js/J-Query/jquery-1.5.2.min.js'></script> <!-- ナビ --> <script type="text/javascript" src='/js/J-Query/jquery.color-RGBa-patch.js'></script> <script type="text/javascript" src='/js/J-Query/example.js'></script> <!--スライダー--> <script type="text/javascript" src="/js/J-Query/jquery.flexslider.js"></script> <script type="text/javascript"> $(function(){ SyntaxHighlighter.all(); }); $(window).load(function(){ $('.flexslider').flexslider({ animation: "slide", start: function(slider){ $('body').removeClass('loading'); } }); }); </script> <script type="text/javascript" src="/js/J-Query/shCore.js"></script> -------------------------------------------- <!-- ナビ --> グローバルナビで使用 参照元 http://css-tricks.com/examples/MagicLine/ の下の方です。 <!--スライダー--> スライダーで使用 参考元 http://flexslider.woothemes.com/ お手数ですがどなたか教えて頂けると幸いです。

  • 標準コンテキストメニューのイベント取得方法について

    お世話になります。 現在、VS2010 C#で作成したTextboxの右クリック時に表示される コンテキストメニュー(元に戻す、切り取り、コピー他)を選択された時の イベントが取得できず調査しております。 下記、参考サイト(2)を見てみたのですが、 Formのload時に「this.○○.ContextMenuStrip.Opening」を 実施しても「ContextMenuStrip」がnullとなります。。。 何か方法がございましたらご教示頂けないでしょうか? ■参考サイト (1)http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35503&forum=7 (2)http://blogs.yahoo.co.jp/kenatzh/31673805.html

  • javaScriptでのクエリー文字の取得

    お世話になります。 PHPを使ってjavaScriptで書かれたページを生成しています。 デバッグ中、 このjavaScriptを書き換えても、 ページがキャッシュされてしまい、 書き換えたとおりに動かないことがあります。 これを回避する方法として、 javaScriptにクエリー文字を渡すと、 キャッシュを回避できるという方法があるようです。 参考サイト  http://wisdomtrees.net/?p=10 http://billyboy.blog81.fc2.com/blog-entry-183.html これらを真似て、 PHPでクエリー値が動的に変わるようにしようとしているのですが、うまくいきません。 以下、呼び出し元のPHPと呼び出し先のjavascriptのソースです。 ●test.php <?php echo "<script type='text/javascript' src='test.js?time=".time()."'></script>"; ?> ●test.js document.write("### loading time is "+getQuerystring('time')); function getQuerystring(key, default_) {  if (default_==null) { default_=""; key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); var qs = regex.exec(window.location.href); if(qs == null){ return default_; }else { return qs[1]; } } } test.jsの1行目では、 クエリー文字が渡っているかどうか表示しているのですが、 動かしてみると何も表示されません。 表示されない原因としては、window.location.hrefが、 test.php(呼び出し元)を指しているためなのですが、 では、test.jsとしてクエリー文字を処理するには、 どうしたらよいのでしょうか? よい方法があれば教えていただければと思います。 よろしくお願いします。

  • JAVASCRIPTで背景を切り替える方法

    以下の2つのjsファイルをボタンで切り替えれるようにするにはどういうソースで可能でしょうか? <SCRIPT type="text/javascript" src="http://www9.ocn.ne.jp/~aki2nd/dhtml/sample/heartdrop.js"></SCRIPT> <SCRIPT type="text/javascript" src="http://www9.ocn.ne.jp/~aki2nd/dhtml/sample/stardrop.js"></SCRIPT> 2つとも動く背景のjsファイルです。 bodyに置けば作動しますので、ボタンを押して2つを切り替えれるようにしたいのですがどうしても方法がわかりません。 どなたかご教授いただけないでしょうか? よろしくお願いします。

  • サーブレットでスレッドを生成

    チャットのようなプログラムで、 (1)クライアントがアプレットをダウンロード (2)アプレットが下(リンク)のようなプログラムにアクセスする とゆうような場合、スレッドが必要になるだろうとテスト用のプログラムを作ったのですが何か間違いがあれば教えてください。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27474&forum=11&0 ちなみに while(i==0) if(i==1) を取れば動くと確認していますが。

    • ベストアンサー
    • Java

専門家に質問してみよう