18

Webページにiframeがあり、iframeから親ウィンドウのURLを取得したいと思います。はい、私はWebを検索していますが、JavaScriptを使用してソリューションを取得し続けています。

では、PHPのみを使用するソリューションを知っていますか?

4

3 に答える 3

23

サーバー側のスクリプトは、クライアント側が明示的にデータを送信しない限り、クライアント側について何も知る方法がありません。たとえば、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.
?>
于 2013-02-02T14:15:39.737 に答える
6

同じ問題がありました。iframe内で検索ルーチンを実行していて、そのiframeの検索機能を自動化する他のページからリンクを作成できるようにしたかったのです。

すべてを読んだ後、'javascriptでのみ実行できます'私はこれを使用しました:

$topurl=$_SERVER['HTTP_REFERER'];
$q=substr($topurl,strpos($topurl,'=')+1);

粗野ですが、私のニーズには効果的です。私はあなたが空想を得て、URLのすべてのパラメータを分解できることを知っていますが、私は1つの検索語だけを必要としました。

于 2013-12-10T10:09:10.757 に答える
0

それはうまくいきません。JavaScriptを使用できます。

于 2013-02-02T14:13:28.287 に答える