アプリ版:「スタンプのみでお礼する」機能のリリースについて

<SCRIPT language="JavaScript">
<!--
function OpenWin(){
window.open("sample.cgi,"new","width=500,height=250");

}
// -->
<A href="#" onClick="OpenWin()">オープン</a>

上のようにsample.htmlのページ内にwindow.openのJavaScriptを書いています。
sample.cgi内に$ENV{'HTTP_REFERER'}を埋め込んでいるのですがリファラーが取得できません。
window.openの場合はリファラーは取得できないのでしょうか?

A 回答 (5件)

リファラーは取得できませんので、わたしならJavaScriptでリファラーを取得してそれをCGIに渡します。



<SCRIPT language="JavaScript">
<!--
function OpenWin(){
window.open("sample.cgi?ref=" + document.referrer, "new", "width=500,height=250");
}
// -->

後はsample.cgiの中で

use CGI qw(:standard);
$ref = param('ref');

とすれば$refにリファラーの値が入ります。

この回答への補足

ご回答ありがとうございます。
私がリファラーによっておこないたいことはsample.cgiへの外部からのアクセスを拒否したいのです。
ですからおっしゃるような感じではだめなんです。
すみません。

補足日時:2006/02/13 14:11
    • good
    • 0

下記を別々にしてみてはどうでしょうか。


・windowを開く
・画面を遷移する

-----
/* 開くだけ */
window.open("","new","width=500,height=250");
-----

<A href="sample.cgi" target="new" onClick="OpenWin();">オープン</A>
    • good
    • 0

私もつい最近同じことで悩みました。


OSやブラウザによってはwindow.openでもリファラが取れるんですが、WIN+IEではダメのようですね。

<A href="sample.cgi" target="_blank">オープン</a>
として、sample.cgiのボディタグに
<body onload="window.resizeTo='500,250'">
ではダメですか? アドレスバーとかは残っちゃいますが…。
    • good
    • 0
この回答へのお礼

なるほど。やはりだめなんですね・・・

><body onload="window.resizeTo='500,250'">
>ではダメですか? アドレスバーとかは残っちゃいますが…。
いえそこまでのこだわりはないので、そのようにしてももちろんかまわないですが。

ありがとうございました。

お礼日時:2006/02/16 11:38

window.open は、新しくウィンドウを開くのでリファラーは得られないように思いますが・

この回答への補足

新しい窓を開くということであればtarget=_blankもそうですがこの場合リファラーとれますよね。
window.openにかぎっては取得できないのでしょうか?

補足日時:2006/02/13 10:11
    • good
    • 0

参照できるかできないか以前に、シンタックスミスしてるように見受けられます。


sample.cgiの後に、「"」が足りないように思えます。
これを加えてからだと、どういう動作しますか?

window.open("sample.cgi","new","width=500,height=250");
               ↑

この回答への補足

"は単に書き損じです。すいません。実際はあります。

補足日時:2006/02/13 10:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!