2011-06-01 111 views
1

我有一個網站,其中一個角落有一個音樂播放器。因爲我不希望用戶每次更改部分網站都停止播放音樂,所以我使用了iFrame作爲內容。所以當有人點擊菜單按鈕時,所有的變化都是iFrame的來源。防止在新選項卡/窗口中打開

現在唯一的問題是如果有人試圖在新的標籤頁/窗口中打開其中一個子頁面。他們所得到的只是白色背景上的黑色文字,應該是iFrame中的內容。

有什麼辦法可以防止這種情況發生?

噢,如果這有幫助的話,這個頁面就是www.sinjabe.com

感謝

回答

0

最合理的解決(我...)將分離從頁面的音樂播放器;音樂播放器在不同的窗口/選項卡中打開。當您的網站的訪問者請求/點擊音樂播放器時,您可以彈出一個窗口。

如果有人在新標籤頁/窗口中打開頁面,其他解決方案(如檢測內容是否具有父框架)將導致多個音樂播放器。

+0

在另一個窗口中打開媒體播放器將非常煩人。任何樂隊網站都有這個,所以必須有解決方案。 – Rickard 2011-06-03 09:28:38

+0

@Rickard:他們不是傾向於完全使用Flash嗎?你能舉一個具有所需行爲的網站的例子嗎? – thirtydot 2011-06-03 09:42:07

0

你可以改變你的子頁面,如果他們在一個iframe中加載這樣的檢測:

(window.location != window.parent.location) ? true : false; 

,然後加載或根據需要重定向到完整的模板。

+0

如何/我在哪裏寫這個?我用JavaScript或其他類似的東西不太好。我想成爲,但我不是:) – Rickard 2011-06-03 09:40:50

+0

這應該放在應該加載到iframe中的內容中。代碼將檢測它是否確實加載到iframe中。如果它返回false,則應根據需要採取措施加載完整模板。 – 2011-06-03 12:27:47

0

將這個在您的子頁面:

<script type="text/javascript"> 
    if (window.location == window.parent.location) 
    this.window.location = 'main_site.html'; 
</script> 

- 給這一個@George康明斯信貸書面方式這麼短的條件statment :)

這將重定向任何直接進來的TRAFIC您子頁面到您的主頁面。然而,我必須警告你,用於顯示此類內容的iframe具有很高的SEO效率,並且在歷史映射(後退按鈕不起作用)和鏈接共享方面無用,因爲在您點擊菜單按鈕時主URL不會改變。

+0

您是否有比iFrame更好的解決方案,讓媒體播放器在更改子頁面時不停止播放?如果你這樣做會很棒! :) – Rickard 2011-06-03 09:31:38

+0

嗯,有一種方法,但是相當複雜。您可以製作例如div內容佔位符,並用ajax填充數據。如果你希望這是SEO友好的,你也應該改變網址取決於你正在加載。您可以在這裏查看Google如何支持ajax內容加載:http://googlewebmastercentral.blogspot.com/2007/11/spiders-view-of-web-20.html這樣瀏覽器不會重新加載以重置播放器,URL將會改變,所以它可以被複制,谷歌將實現網站結構。 – 2011-06-03 10:39:15

+0

另一種解決方案是該網站完全由Adobe Flash製作。 Flash網站不需要重新加載來更改內容,因爲它們可以從一個文件加載整個網站,或動態加載需要顯示的資產。 – 2011-06-03 10:44:19

相關問題