【问题标题】:meta refresh redirect to top frame元刷新重定向到顶部框架
【发布时间】:2012-07-26 06:38:18
【问题描述】:

我有以下代码:

<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. 在顶框刷新到新页面

任何帮助将不胜感激!

【问题讨论】:

  • @Billy Moat:是的。我在框架 A 中运行脚本,而框架 B 向我显示进度(带有元刷新),直到完成。然后它应该更改元刷新,以便刷新到父框架。
  • @Diodeus:“可能重复”.. 有趣。但是,感谢您的回复,因为您链接到的页面上的 window.location javascript 东西(变成了 window.top.location)起到了作用! (必须放入一些脚本以使其仅在满足条件时发生)

标签: javascript html redirect refresh meta-tags


【解决方案1】:

Javascript 不能在 refresh 这样的元标记中工作。

反正你在使用 javascript,请保持简单,如下所示:

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

但也有更好(因为更聪明)的方法来做到这一点。这不需要您对每个页面的 URL 进行硬编码。它检查页面是否在最顶层,如果不是,是否将页面的 URL 调用到 top:

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

如果您希望完全避免使用 javascript(某些用户将禁用它),还有一种更简单的方法可以做到这一点。将以下内容添加到您的 head 部分,该页面上的所有链接都将打开“最顶层”:

<base target="_top">

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2018-01-17
    • 2014-11-13
    • 2015-07-18
    • 1970-01-01
    相关资源
    最近更新 更多