2012-07-27 58 views
4

我有以下代码:元刷新重定向到顶部框架

<html> 
<head> 
<title>title of this stuff</title> 
<script language="JavaScript"> 
    if (top != self) top.document.title = document.title; 
</script> 
<meta http-equiv="refresh" content="2;  URL=javascript:window.open('certainpage.html','_top');"> 
</head> 
<body> 
Body of this page 
</body> 
</html> 

,这是行不通的。 我已经为此搜索并得出相同的结论无处不在:这应该工作。 但它没有。任何人都可以帮我解释为什么这个网页不是: 1.刷新只要我有在那里的JavaScript(是的,在我的浏览器启用js) 2.刷新到顶部框架中的新页面

任何帮助,将不胜感激!

+2

[使用Javascript来重写或禁用元刷新标记](http://stackoverflow.com/questions/3252743/using-javascript-to-override-or-disable-meta-refresh-tag) – 2012-07-27 14:52:41

+0

你'重新使用框架?! – 2012-07-27 15:11:35

+0

@比利护城河:是的。我在框架A中运行脚本,而框架B向我显示了进度(使用元刷新),直到完成。然后它应该更改元刷新,以便刷新到父框架。 – Malachi 2012-07-27 16:08:19

回答

10

JavaScript不会在刷新这样的meta标签中工作。

当你使用JavaScript无论如何,保持简单是这样的:

<script type="text/javascript"> 
    window.top.location = 'http://domain.tld/whatever/'; 
</script> 

但也有一个更好的(因为聪明)的方式来做到这一点。这并不要求您为每个页面硬编码URL。它检查如果页面最上面,如果不是,如果调用页面的URL到顶部

<script type="text/javascript"> 
    if(window.top.location != window.location) 
    { 
     window.top.location.href = window.location.href; 
    } 
</script> 

如果您希望完全避免使用JavaScript(其中一些用户已禁用),但也一个更简单的方法来做到这一点。以下添加到您的部分,该网页上的所有链接将会打开“层次最高的”:

<base target="_top"> 

所有你所要做的就是选择这三个选项之一。他们都应该让你做得很好。