元标记刷新重定向到顶部框架。

5

I have the following code:

<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覆盖或禁用meta refresh标签 - Diodeus - James MacFarlane
@Billy Moat:是的。我正在帧A中运行脚本,而帧B则通过元刷新显示进度,直到完成。然后它应该更改元刷新,以便刷新到父框架。 - Malachi
@Diodeus:“可能是重复的”..有趣。不过,感谢您的回复,因为您链接的页面上的window.location javascript问题(转换为window.top.location)解决了问题!(必须放一些脚本以使其仅在满足条件时发生) - Malachi
1个回答

12

像那样在刷新元标记中使用Javascript是行不通的。

既然你已经在使用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(某些用户可能已禁用),还有一种更简单的方法。将以下内容添加到您的head部分,该页面上的所有链接都将打开“最顶层”:

<base target="_top">

你只需要选择这三个选项中的一个。它们都可以让你顺利开始。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接