2013-12-06 5 views
1

У меня есть iframe на моей веб-странице, который находится в другом домене. Я знаю, что по соображениям безопасности в браузере невозможно получить доступ к содержимому этого iframe с помощью javascript, но могу ли я обнаружить любые POST или GET, которые происходят, когда пользователь переходит со страницы на страницу iframe?Захват POST или GET данных iframe

+0

Обратите внимание я модифицировал вопрос, чтобы позволить GET тоже. –

+1

Вы можете использовать событие 'onload', но это не позволит вам получить любую информацию о запросах - только что они имели место – CodingIntrigue

+0

Спасибо. Нажатие кнопки, могу ли я использовать javascript для определения того, на каком URL-адресе включен iframe? URL-адрес изменится по мере того, как пользователь начнет навигацию, если я смогу захватить этот URL-адрес, я могу получить нужные мне данные. –

ответ

0

Если у вас есть как приложение, вы можете научить их общаться с postMessage API: https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

С не так много работы вы можете создать простой метод на стороне IFrame, который подскажет, что его нынешний window.location.

+0

К сожалению, я этого не делаю. Знаете ли вы, можно ли использовать javascript для определения того, на каком URL-адресе включен iframe? URL-адрес изменится по мере того, как пользователь начнет навигацию, если я смогу захватить этот URL-адрес, я могу получить нужные мне данные. –

+0

Боюсь, что вы ничего не можете сделать. Было бы серьезной проблемой безопасности, если бы такие данные были доступны третьим сторонам. – chrmod

0

Если вы управляете сервером, вы можете передать некоторые вары, напечатав их на parent.yourMethodToHandle() с некоторым кодом на стороне сервера. Например:

с PHP на странице ребенка (в IFRAME):

$post_var = $_POST['var']; 
echo "<script type='text/javascript'>$(function(){parent.yourMethodToHandle('$post_var')}); </script>"; 

и JS на вашей родительской странице (содержащей IFRAME):

<script type='text/javascript'> 
function yourMethodToHandle(post_var){//Do things} 
</script> 
Смежные вопросы