Я сразу скажу, что знаю, что это невозможно из-за ограничений безопасности , но вот мой сценарий, и я ищу творческие обходные пути , которые я не могурассмотреть.
У меня есть веб-сайт, который отображает эскизы изображений.Когда пользователи нажимают на миниатюры, я использую элемент управления наложением jQuery (FaceBox) для отображения полноразмерного изображения во всплывающем окне.Верхняя часть всплывающего окна всегда расположена в 20 пикселях от верхней части страницы, поэтому необходимо прочитать значение scrollTop () страницы.
Эта функция прекрасно работает, когда я получаю прямой доступ к своему сайту.Но когда я загружаю сайт из приложения Facebook Canvas в IFRAME , мой код позиционирования для всплывающих окон прерывается.Я отключил полосы прокрутки для Canvas и использую FB.Canvas.setSize (...), чтобы вручную уведомить родительскую страницу об изменениях высоты в моем IFRAME.Так как мне не разрешен доступ к значению ScrollTop () в родительском объекте, мой обходной путь заключается в размещении верхней части наложения относительно верхней части исходного эскиза.Это сохраняет наложение близко к источнику, но вряд ли идеально, особенно если миниатюра находится близко к нижней части области просмотра.
Есть ли способ разместить всплывающее окно в 20 пикселях от верхней частиIFRAME, но как-то принять во внимание (запрещенное) расположение ScrollTop () родительского окна?
Это похоже на довольно распространенный сценарий;Я надеюсь, что Facebook планирует решить эту проблему в будущем.Объект FB.Canvas.getPageInfo выглядит хорошим кандидатом для этого.Он имеет элемент scrollTop, но он предназначен для Canvas, а не для родительского фрейма, и если полосы прокрутки отключены, это значение всегда равно нулю.