2011-02-11 61 views
0

我希望你們中的一些人比我更擅長編碼,這可以提供幫助。檢測何時在iframe中,然後隱藏元素

我有一個簡單的網頁(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顯示他們點擊的頁面。

現在我想要做的是,當人們通過主頁單擊鏈接,因此得到一個彈出/ iframe,在該頁面上,例如(www.mypage.com/link1.html)我想隱藏一些元素。元素是鏈接菜單和橫幅的東西。

現在,如果某個人手動輸入了其中一個鏈接,例如直接在瀏覽器中輸入www.mypage.com/link1.html,那麼我希望顯示橫幅和橫幅。

有反正我可以做到這一點嗎? 是否有一些JavaScript可以運行,如果它發現它是一個iframe,它可以做一個顯示:沒有關於我想隱藏的元素?

非常感謝提前。

+0

israme JS生成或硬編碼? – 2011-02-11 13:06:05

回答

1

這是我該怎麼做: 在鏈接頁面(www.mypage.com/link1.html)我會有一個腳本來驗證網址的散列是否有一定的價值。如果是這樣,然後隱藏橫幅;否則通常顯示橫幅。 因此,當您在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查詢樣sintax:URL旗幟= false,並檢查該參數在網址中。
希望這有助於!

+0

哦,我的,這是一個很棒的主意。非常感謝。 – DarkUFO 2011-02-11 14:26:10

0

我能想到的檢測頁面在iFrame中的最佳方式是將頁面的URL與瀏覽器窗口中的URL進行比較。如果它們不同,它必須在一個框架中。

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

謝謝,我也會試一試。非常感謝你 – DarkUFO 2011-02-11 14:27:08