У меня есть iframe на веб-странице, и из iframe я хочу получить URL-адрес родительского окна. Да, я искал в Интернете, но я продолжаю получать решения с помощью JavaScript.
Итак, ваши ребята знают какие-либо решения, которые используют только PHP?
У меня есть iframe на веб-странице, и из iframe я хочу получить URL-адрес родительского окна. Да, я искал в Интернете, но я продолжаю получать решения с помощью 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']
. HTML файл, содержащий iframe, отправляет некоторые заголовки, когда он запрашивает файл, а один из них - 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-адреса, но мне нужен только один поисковый запрос.
Это не сработает, вы можете использовать JavaScript.