2010-12-16 1 views
0

Я заинтересован в связывании или встраивании внешней страницы, прокрутки до определенной точки. Возможно ли это, или же кросс-браузерные ценные бумаги предотвращают это?Внешняя страница - дайте ей инструкции JS?

Обходное решение, которое я рассмотрел, создает iframe внутри div, предоставляя iframe отрицательное поле, а затем переполнение: hidden; контейнер div.

Спасибо.

ответ

1

Возможным решением может быть использование JavaScript для прокрутки страницы. Однако, если страница, которую вы внедряете, находится в другом домене, вы не можете получить доступ к ее контенту с помощью JavaScript, если он находится в iframe (из-за same origin policy). Однако, если он находится в том же домене, что и главная страница, вы должны иметь доступ к нему с помощью JavaScript, а затем прокручивать с помощью метода window.scrollTo(x,y) или аналогичного (см. this page on MDN).

Кроме того, если страница, в которую вы встраиваетесь, имеет именованный якорь (<a name="blah">) или элемент уровня блока с определенным идентификатором (<div id="blah">) в точке, которую вы хотите прокрутить, вы можете ссылаться на нее или вставлять ее используя URL-адрес, такой как http://example.com/page#blah, и он автоматически прокрутит до blah. Это не соответствует политике одного и того же происхождения, поэтому вы можете сделать что-то вроде <iframe src="http://example.com/page#blah"></iframe>, и кадр будет автоматически прокручиваться до blah, даже если он не находится в том же домене, что и хост.

Решение «iframe with negative margin», о котором вы говорили, может работать, но это может быть сложно реализовать и, вероятно, вызовет проблемы, особенно если вы хотите иметь полную совместимость между браузерами.

+0

Как-то я пропустил урок о привязке якоря к любому узлу с идентификатором. Это потрясающе. – Matrym 2010-12-17 00:44:45