2011-06-01 84 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

相关问题