meta refresh redirect to top frame

会有一股神秘感。 提交于 2019-12-04 03:24:43

问题


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:


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.



来源:https://stackoverflow.com/questions/11690253/meta-refresh-redirect-to-top-frame

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!