• ベストアンサー

<script type="text/javascript" src= について

よろしくお願いします。JavaScriptは、ほとんど触ったことがなく、現在記述がわからず困って今sう。 htmlファイルの中から、外部ファイルに引数(referre)をつけて渡したく思います。で以下のようにやってみたのですが、 index.html <script type="text/javascript" src="http://hoge.com/info.php?ref=' + document.write(document.referrer) + '" charset="Shift-JIS"></script> info.php $ref = $_GET['ref']; echo document.write('$ref'); info.phpから返ってくる答えは「' document.write(document.referrer) ' 」です。 index.html内の JAVASCRIPT部分が間違っているに違いないのですが、どうやって記述すればよろしいでしょうか? よろしくお願いします。

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

  • ベストアンサー
回答No.3

src要素内はJavaScriptではないので、document.write()としても文字列としてしか認識されません。 info.phpにreferrerを渡すのでしたら、 <script type="text/javascript"> var ref = document.referrer ; document.write("<script type=\"text/javascript\" src=\"http://hoge.com.info.php?ref="+ref+"\"></script>"); </script> とする必要があります。

hola1973
質問者

お礼

ありがとうございました。 見事に帰ってくるようになりました。 本当に助かりました。 m(__)m

その他の回答 (2)

回答No.2

><script type="text/javascript" src="http://hoge.com/info.php?ref=' + document.write(document.referrer) + '" charset="Shift-JIS"></script> script要素の内容としてならともかく,src属性内はjavascriptではないと思うので多分ならない。(つまり文字連結演算子としても捕らえられることはない) http://hoge.com/info.php?ref=' + document.write(document.referrer) +' というURLになるだけだと思われる

回答No.1

Windows XP Pro SP2 + ANHTTPD 1.42p + PHP 5.2.3 参考資料 http://homepage1.nifty.com/yito/anhttpd/faq/php5.html 『Webサーバ上に載せたら』 すべてのファイルを同じフォルダに入れて Q3205563-1.htmlへアクセス ==================Q3205563-1.html================= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>Q3204021 テストケース1</title> </head> <body> <p><a href="Q3205563-2.html">ほげ</p> </body> </html> ====================Q3205563-2.html============= <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>Q3204021 テストケース1</title> <style type="text/css"> p#hakka{background-color:red;} p#fuga{background-color:green;} </style> <script type="text/javascript"> function init(){ alert(document.referrer); var sc=document.createElement("script"); sc.setAttribute("type","text/javascript"); sc.setAttribute("src","Q3205563-3.php?ref=" + document.referrer); var head = document.getElementsByTagName("head")[0]; head.appendChild(sc); // hoge();をこの地点で実行できないみたいなので,読み込み終わったと思ったら // 赤い部分をクリック } </script> </head> <body onload="init();"> <p>赤い部分をクリック</p> <p id="hakka" onclick="hoge();">ほげ</p> <p id="fuga">ふが</p> <!-- referrerがふがの後に追加される --> </body> </html> ===================Q3205563-3.php===================== <?php $ref = $_GET['ref']; echo "function hoge(){\n"; echo "var fuga = document.getElementById('fuga');\n"; echo "if (fuga.hasChild){\n"; echo "fuga.firstChild.nodeValue +='" . $ref . "';\n"; echo "}else{\n"; echo "fuga.appendChild(document.createTextNode('" . $ref . "'));"; echo "}\n"; echo "}\n"; ?>

hola1973
質問者

補足

返答ありがとうございます。 一番聞きたい部分は、以下の文 <script type="text/javascript" src="​http://hoge.com/info.php?ref='​ + document.write(document.referrer) + '" charset="Shift-JIS"></script> の「'+document.write(document.referrer)+'" 」の文字列結合演算子なのですが、この書き方では、REFERRERを代入して文字列結合しませんでしょうか?

関連するQ&A

  • adsenseをjavascriptで出力したい

    お世話になります。 以下の構文が記載されたPHPをhtmlからjavascriptにて呼び出してます。 が、うまく広告が表示されずに困っています。 PHPを直接叩き、document.write等を削除したものを 直接htmlに貼り付ければ、広告は表示されます。 広告が表示されない原因としては、adsenseのscript内でinframeを作成しているのですが その歳のwidth,heightが0になってしまっているようです。 しかし、なぜその値が渡せていない?のかが解らずハマっています。 <?php header("Content-type: application/x-javascript"); echo "document.write(\"<div align='center'>\")\n"; echo "document.write(\"<p>\")\n"; echo "document.write(\"<script type='text/javascript'><!--\")\n"; echo "document.write(\"google_ad_client = 'hogehogeID';\")\n"; echo "document.write(\"/* 200*200 */\")\n"; echo "document.write(\"google_ad_slot = 'slotnumber';\")\n"; echo "document.write(\"google_ad_width = 200;\")\n"; echo "document.write(\"google_ad_height = 200;\")\n"; echo "document.write(\"//-->\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"<script type='text/javascript'\")\n"; echo "document.write(\"src='http://pagead2.googlesyndication.com/pagead/show …\")\n"; echo "document.write(\"</script>\")\n"; echo "document.write(\"</p>\")\n"; echo "document.write(\"</div>\")\n"; ?> adsenseコード中にコメントが使用されているのですが このあたりが怪しいと思いますが・・・ 博識な方、よろしくお願い致します。

  • <SCRIPT type="text/javascript">

    <SCRIPT type="text/javascript"> <!-- function Watch() { now = new Date(); year = now.getYear(); month = now.getMonth()+1; day = now.getDate(); hour = now.getHours(); minute = now.getMinutes(); second = now.getSeconds(); if (year < 1000) { year += 1900 } if (hour < 10) { hour = '0' + hour } if (minute < 10) { minute = '0' + minute } if (second < 10) { second = '0' + second } document.form.watch.value = year+'年' + month + '月' + day + '日 ' + hour + ':' + minute + ':' + second; setTimeout("Watch()",1000); } document.write('<FORM name=form><INPUT name=watch size=27></FORM>'); Watch(); //--> </SCRIPT> の意味を詳しく説明してください。 あと、scriptでカウントダウンの作りかたを教えてください。 ようするに、999から998、997えとカウントダウンするという意味です。 だれか教えてください。かなり詳しく小学生でもわかるように超めっちゃ詳しく教えてください。 お願いします。 ほんと詳しくお願いします。できるだけ早くお願いします。 このscriptの中身を詳しくお願いします。あと、 <script type="text/JavaScript">を小学生でもわかるほど詳しく書いてあるサイトがあれば教えて ください。 ※JavaScriptでランダムRPGゲームを作る は知っているのでもっと詳しく説明してあるサイトを教えてください。

  • frameとJavaScriptの共存

    <html><head><title> INDEX.HTML </title></head> <frameset rows="70%,*"><frame src="./main.html" name="MAIN"><frame src="./menu.html" name="MENU"></frameset></html> の中に下記のJavaScriptを埋め込みたいのですが どうすればいいのでしょうか? <SCRIPT Language="JavaScript"> <!-- document.write("<img src='http:/xxx/acclog.cgi?"); document.write("referrer="+document.referrer+"&"); document.write("width="+screen.width+"&"); document.write("height="+screen.height+"&"); document.write("color="+screen.colorDepth+"'>"); // --> </SCRIPT> Java Scriptを埋め込んだらフレームが正常に働かなくなりました。 どのようにすればいいのでしょうか?アクセス解析なのでindex.html に設置したいのですがいいアドバイスよろしくお願いします。

    • ベストアンサー
    • HTML
  • Javascriptの関数をPHPで作りましたが戻値を得る方法がわかりません。

    はじめまして。xpにxamppの環境で利用してます。 PHPをjavascriptの関数に出来ると知り、 geturl.php <?php header("Content-type: application/x-javascript"); echo "function picturl() {"; ~ MySQLを特定の条件で検索し、画像の保存先URLを$urlへ格納 ~ echo "}"; ?> showpict.html <html> <head> <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <title>photo</title> <script type="text/javascript" src="geturl.php"></script> <script type="text/javascript"> ~以下でたとえば、  var url = picturl(); とすれば url に 値が入るかと思って作成して見ました。 PHPの$urlには、 ./data/001.png のような値が入ります。 私が参考にしたPHP文では戻値は変数ではなく生のテキストで echo "document.write(\"文章\")"; となっており、これは実行できました。 変数を使用して上記のような値を求めようとしたところ、 echo "document.write(\"$url\")"; echo "retuen $url"; などを試してみましたがうまくいきません。 この様な方法では利用できないものなのでしょうか?。 それともecho文が以外の方法で行うものなのでしょうか?。 よろしくご協力のほどお願いいたします。

    • ベストアンサー
    • PHP
  • Javascriptの変数をPHPに渡したい

    環境  サーバLinux、Apache2.0.47、PHP4.3.2で使用しています 質問  リンク元の取得のためgetenv("HTTP_REFERER")を使っていますが情報が取得できません。  クライアント側のファイアウォール(ノートンなど)が無効になっているときにしか情報が取得できませんでした。  Javascriptのdocument.referrerを使ったところ、ファイアウォール関係なく情報が取得できました。  ログ保存のためにPHPの変数にdocument.referrerを渡したいのですがどのようにすればよいのでしょうか?  下のように書いたところブラウザには正常に表示されましたが、  ログはJavascriptの制御文そのものが保存されました。  $link="<SCRIPT language='JavaScript'><!--    document.write(document.referrer);    --></SCRIPT>"; よろしくお願いします。

    • ベストアンサー
    • PHP
  • JavaScriptの値をPHPで取得

    こんにちわ。よろしくお願いします。 いま、JavaScriptで取得した値を同一ページ内でPHPの変数に入れることはできないでしょうか? 例えば <SCRIPT language="JavaScript"> <!-- document.write(document.referrer); // --> </SCRIPT> というのがあったとして これの値をPHPの変数に入れることができればなぁっと考えています。 自分的にには無理っぽいかなって思っているのですが、 もしかしたらなにか方法があるかもしれないと思い 質問させていただきました。 なにか方法がわかる方がいらっしゃいましたらアドバイスお願いします。

    • ベストアンサー
    • PHP
  • javascriptとphpの連携で疑問

    javascriptの変数をphpに渡すプログラムを、ネットを参考にして次のようなものを作りました。 ●クライアント側 (index.html) <html> <head> </head> <body> <script type="text/javascript" src="j2p.php?parm=1"></script> </body> </html> ●サーバー側 (j2p.php) <?php $parm = $_GET['parm']; header("Content-type: application/x-javascript"); if ($parm == 1) { echo "document.write('1ですよ')"; } else { echo "document.write('1じゃないですよ')"; } ?> 上記は問題なく動作するのですが、サーバー側のプログラムを、次のように 変更し、直接$parmを出力しようとすると何も表示されません。 ●サーバー側 (NG1) <?php $parm = $_GET['parm']; header("Content-type: application/x-javascript"); echo "document.write('<?php echo $parm; ?>')"; ?> どこか、考え方が根本的に間違っているのかも知れませんが、この問題で ずっと悩んでおり、先に進めない状態です。 上記プログラムのおかしな点、改善点など、アドバイスよろしくお願い いたします。

  • 文系でHTMLしかわからない者です。

    文系でHTMLしかわからない者です。 htmlファイルに、 <script type="text/javascript" src="http://hogehoge.com/sample/index.php? param=0"></script> みたいなタグを記述して、HTMLファイルを呼び出したいと考えています。 いろいろサイトをググってみたら下記のようなソースをみつけました。 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '0') { echo "document.write(\"WEB Artisan\")"; } else { echo "document.write(\"RESTARTSYSTEM\")"; } ?> これを実装すると、「WEB Artisan」が出力されるようになったのですが、ここをhtmlファイルにするにはどうすればいいのでしょうか。 非常に初歩的な質問かもしれませんが、ご指導の程、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 外部javascriptファイルをjavascriptから動的に呼び出したい

    呼び出し元のURLによって動作を変えたいJAVASCRIPTがあります。 普段外部のJAVASCRIPTを呼び出すときはよくこうするのですが <script type="text/javascript" src="js.php?key=url"></script> これでは「key=url」が固定になってしまいます。そこで下記のように <script> var commentname=document.URL; var str=encodeURIComponent(commentname); document.write('<script type="text/javascript" src="read.php?key=',str,'"><\/script>'); </script> document.writeを使って無理やり外部Javascriptファイルの呼び出しスクリプトを書いているのですが、この書き方はどうもエレガントさにかけるというか、いまいち気に入りません。 もっとほかに良い方法がある気がするのですが、調べてもわかりませんでした。おわかりになる方がいらっしゃったらご教示頂けないでしょうか。

  • JavaScriptのカウンタですが・・・

    JavaScriptのアクセス解析ですが、 ページにカウンタを表示しないような設定は どうすれば出来るのでしょうか? ソースは次の通りです。 訂正個所を教えていただければ幸いです。 宜しくお願いします。 <script type="text/javascript"> <!-- wid = window.screen.width; hei = window.screen.height; clr = window.screen.colorDepth; ref = window.parent.document.referrer; document.write( "<img src='./cala/cala.cgi?" + "&w=" + wid + "&h=" + hei + "&clr=" + clr + "&ref=" + ref + "'>" ); // --> </script>

専門家に質問してみよう