meta refresh redirect to top frame

2019-02-23 06:59发布

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>

and this doesn't work. I've googled for this and come to the same conclusion everywhere: this should work. But it doesn't. Can anyone help me out why this page isn't: 1. refreshing as long as I have the javascript in there (and yes, js is enabled in my browser) 2. refreshing to the new page in the top frame

Any help would be appreciated!

1条回答
兄弟一词,经得起流年.
2楼-- · 2019-02-23 07:38

Javascript won't work in the refresh meta tag like that.

As you're using javascript anyway, keep it simple like this:

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

But there's also a better (because smarter) way to do it. This doesn't require you to hard-code the URL for each page. It checks if the page is topmost and if not, if calls the page's URL to the top:

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

And if you would prefer to completely avoid using javascript (which some users will have disabled), there's also an even simpler way to do it. Add the following to your head section and all links on that page will open "topmost":

<base target="_top">

All you have to do is to choose one of these three options. All of them should get you going just fine.

查看更多
登录 后发表回答