Как найти высоту между определенной точкой в ​​iframe и вершиной документа iframe - PullRequest
0 голосов
/ 25 января 2012

У меня есть iframe, загруженный в родительское окно другого домена, и я хочу найти разницу высоты пикселей между любой точкой в ​​iframe и высотой документа iframe. Под высотой документа iframe я имею в виду не только верхнюю часть iframe, но и верхнюю часть документа, которая загружается внутри iframe (которая отличается, если вы прокрутите вниз внутри iframe).

Я хочу иметь возможность сделать это из скрипта в html родительского окна. Использование $("iframe").offset().top для поиска верхней части документа iframe не работает по причинам, указанным выше (я не хочу верхней части iframe). Есть ли способ получить ссылку на элемент DOM документа, который загружен внутри iframe, и это мне поможет?

1 Ответ

0 голосов
/ 25 января 2012

Если iframe находится в другом домене, вы не можете это сделать.Для получения позиции scrollTop потребуется доступ к contentDocument.Хотя очевидно, что знание того, где документ прокручивается, не является компромиссом для безопасности пользователя, доступ к contentDocument в другом домене - это просто нет-нет.

Теперь, если в вашем домене был файл PHP,который проксировал страницу с другого домена, это другая история.Такой метод будет легко реализовать, если вы обращаетесь только к одной странице без ссылок или форм:

<?php echo file_get_contents("http://example.com/"); ?>

и ...

<iframe src="myproxy.php" id="iframe" />

Теперь вы можете получить доступ к contentDocument, и, следовательно, его содержание:

document.getElementById('iframe').contentDocument.documentElement.scrollTop
// contentDocument.body.scrollTop in some browsers - get both and add them together

Если есть ссылки и / или формы, ваша жизнь будет намного сложнее.Сначала вам нужно будет переписать все URL, чтобы пройти через прокси-скрипт, затем вам придется использовать функции сокетов или cURL для POST формирования данных на другом сервере ... было бы намного проще, если бы выесть только одна страница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...