модификации iframes - PullRequest
       14

модификации iframes

0 голосов
/ 08 октября 2009

У меня есть веб-сайт, который использует top в JavaScript для отображения книжных магазинов на панели. Теперь я хочу добавить этот сайт на другой сайт, используя рамку. Но когда я исправляю URL в src фрейма, он меняет иерархию страниц или изображений, и книжные магазины не отображаются.

Ответы [ 2 ]

0 голосов
/ 09 октября 2009

Я не уверен, действительно ли я понимаю вашу проблему. (О;

Это должна быть простая форма набора фреймов по умолчанию на вашем сайте.

<html>
    <frameset rows="50,50">
        <frame name="bookframe" src="bookframe.html" />
        <frame src="default.html" />
    </frameset>
</html>

И это должен быть файл default.html с кодом JavaScript для управления панелью книжного фрейма.

<html>
    <body>
        <script>
            parent.frames["bookframe"].location.href  = "uri";
        </script>
    </body>
</html>

Как видите, я использую имя фрейма вместо top.

Включите набор кадров из моего первого списка на новую страницу, используя iframe, и все еще работает.

<html>
    <body>
        <iframe src="frameset.html" />
    </body>
</html>

Если ваш сайт с самого начала использует только iframe вместо набора фреймов, он все еще работает, используя имя вместо top.

ПОДСКАЗКА: имя должно быть уникальным. не должно быть никакой переменной javascript с таким же именем. только майкрософт т.е. знает почему!

надеюсь, это поможет!

0 голосов
/ 08 октября 2009

Таким образом, «top» на самом деле является «window.top» (но так как window является частью глобальной области видимости, вы можете обойтись просто «top»). Если вы прочитаете о том, что делает window.top, вы обнаружите, что он возвращает «ссылку на самое верхнее окно в иерархии окон». Другими словами, если у вас есть:

Frame Page B
  Famed Page C

и вы вызываете window.top с любого из них, вы получите тот же самый оконный объект (тот, что для страницы B).

Однако, если вместо этого у вас есть:

Frame Page A
  Frame Page B
    Famed Page C

window.top всегда возвращает объект окна для страницы A, независимо от того, вызываете ли вы его из A, B или C.

Я думаю, что вы хотите использовать вместо этого (хотя это трудно понять, не видя ваш сайт), это window.parent (то есть «parent», если вы не хотите беспокоиться о «window»). Это свойство возвращает непосредственного родителя рассматриваемого окна. Если вы вызываете это из C, он ВСЕГДА будет возвращать окно B, даже если B помещено в рамку внутри A. Это должно позволить вам кадрировать вашу (обрамляющую) страницу так, как вы хотите, не нарушая логику самого внутреннего кадра.

Надеюсь, это поможет.

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