Webページにiframeがあり、iframeから親ウィンドウのURLを取得したいと思います。はい、私はWebを検索していますが、JavaScriptを使用してソリューションを取得し続けています。
では、PHPのみを使用するソリューションを知っていますか?
サーバー側のスクリプトは、クライアント側が明示的にデータを送信しない限り、クライアント側について何も知る方法がありません。たとえば、AJAXを使用します。
iframe自体を制御できる場合は、いつでもクエリ文字列で変数を渡し、次を使用してそれらにアクセスできます$_GET
。
HTML
<iframe src="http://example.com/file.php?variable=value"></iframe>
PHP
<?php
echo $_GET['variable'] // Outputs 'value'
?>
を使用する方法があるかもしれません$_SERVER['HTTP_REFERER']
。iframeを含むHTMLファイルは、ファイルを要求するときにいくつかのヘッダーを送信し、そのうちの1つはHTTP_REFERERのように見えます。これをローカルでテストしましたが、機能しているようです。
唯一の欠点は、リファラーがiframeであるかどうかがわからないことです。繰り返しになりますが、iframeを制御できる場合は、上記のメソッドを使用して変数を渡し、それがiframeであることを示し、以下のメソッドを使用してURLを動的に取得できます。
たとえば、このファイルのURLがhttp://example.com/であるとします。
<iframe src="http://example.com/file.php"></iframe>
PHPファイル。これをfile.phpと呼びます。
<?php
echo $_SERVER['HTTP_REFERER']; // Should output http://example.com.
?>
同じ問題がありました。iframe内で検索ルーチンを実行していて、そのiframeの検索機能を自動化する他のページからリンクを作成できるようにしたかったのです。
すべてを読んだ後、'javascriptでのみ実行できます'私はこれを使用しました:
$topurl=$_SERVER['HTTP_REFERER'];
$q=substr($topurl,strpos($topurl,'=')+1);
粗野ですが、私のニーズには効果的です。私はあなたが空想を得て、URLのすべてのパラメータを分解できることを知っていますが、私は1つの検索語だけを必要としました。
それはうまくいきません。JavaScriptを使用できます。