Обнаружение внутри фрейма, а затем скрытие элементов - PullRequest
0 голосов
/ 11 февраля 2011

Надеюсь, что некоторые из вас лучше, чем я, могут помочь в кодировании.

У меня есть простая веб-страница (www.mypage.com).Он имеет 5 ссылок

Ссылка 1 (www.mypage.com/link1.html) Ссылка 2 (www.mypage.com/link2.html) Ссылка 3 (www.mypage.com/link3.html) Ссылка4 (www.mypage.com/link4.html) Ссылка 5 (www.mypage.com/link5.html)

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

Теперь я хочу, чтобы, когда люди нажимали на ссылку через главную страницу и, следовательно, получали всплывающее окно / iframe, например, на этой странице (www.mypage.com/link1.html) я хочу скрыть некоторые элементы.Элементы - это вещи, которые ссылаются на Меню и Баннер.

Теперь, если человек вводит одну из ссылок вручную, например, набирает www.mypage.com/link1.html непосредственно в своем браузере, тогда я хочу, чтобы Баннер и Баннер показывались.

Могу ли я в любом случае сделать это?Есть ли какой-нибудь javascript, который может запустить это, если он обнаружит, что это iframe, что он может отображать: нет элементов, которые я хочу скрыть?

Большое спасибо заранее.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

Вот как бы я это сделал: на страницах ссылок (www.mypage.com/link1.html) у меня будет скрипт для проверки, имеет ли хэш URL-адрес определенное значение. Если это так, то спрячьте баннеры, иначе покажите баннеры нормально. Поэтому, когда вы открываете страницу в iframe, обязательно установите src на «www.mypage.com/link1.html#banner_off», а не на простой «www.mypage.com/link1.html".
Таким образом, когда пользователь вводит в браузере адрес ссылки (без хеш-значения), ваши объявления будут показываться. Вот пример того, как должен выглядеть скрипт на страницах ссылок:

function manageBanners(){
    if(document.location.hash == "banner_off")//hide banners
        {
            //code to hide banners here
            var banners = document.getElementsByClassName('banner');
            for(var i in banners)
                banners[i].style.display = 'none';
        }
    //else do not alter the banners visibility
}
window.onload = manageBanners;

Конечно, вы можете использовать php-запрос таким же образом, как и синтаксис: url? Banner = false и проверять параметры в URL.
Надеюсь, это поможет!

0 голосов
/ 11 февраля 2011

Лучший способ обнаружить, что страница находится в iFrame, - сравнить URL-адрес страницы с URL-адресом в окне браузера.Если они разные, они должны быть в рамке.

if (top.location != location) {
    // hide menu and banner
}
...