当iframe页面刷新时,它会重定向到主页面而不是同一页面

时间:2017-01-13 07:40:04

标签: javascript jquery html iframe

我的网站使用iframe加载div元素内的内容。 我的问题是当页面刷新时它会重定向到主页面而不是当前页面。

以下是代码的一部分。

     <a  href="promotion.jsp">Promotion</a>

这是我使用的javascript函数。

$(document).ready(function(){

        var url;
        $('a').click(function(e){

            e.preventDefault();
            url = $(this).attr('href');
            if(undefined != url){
                window.frames["page-wrapper"].src = url;
                clickFront();
            }
        });

        $("button").click(function() {
            checkUrlandId(url,this.id);         
        });

    });

clickFront()是启用和禁用某些顶级菜单栏按钮功能的功能。

所以当我点击菜单项(Approvals)页面改变了。在该页面刷新后,它将重定向到主页面而不是当前页面。

这是两个截图。第一个是在点击菜单项之前,第二个是在点击菜单项之后。

First Image

Second Image

点击菜单项后,网址不会改变。

我读过我们可以使用cookies或javascript localstorage来保存网址吗?有人可以帮助我......我是js的新手。

2 个答案:

答案 0 :(得分:0)

我希望window.frames["page-wrapper"].src = url;成为 window.frames["page-wrapper"].location = url;

反正。如果您需要更改iFrame以恢复刷新和书签,则需要在页面中使用哈希:

$(function(){
    var url = location.hash?decodeURIComponent(hash.substring(1)):"";
    if (url) window.frames["page-wrapper"].location = url;
    $('a').click(function(e){
        e.preventDefault();
        url = $(this).attr('href');
        if(undefined != url){
            location.hash=encodeURIComponent(url);
            window.frames["page-wrapper"].location = url;
            clickFront();
        }
    });

});

如果网址是外部网址,则确实需要定位。

localStorage的

$(function(){
    var url = localStorage.getItem("url");
    if (url) window.frames["page-wrapper"].location = url;
    $('a').click(function(e){
        e.preventDefault();
        url = $(this).attr('href');
        if(undefined != url){
            window.frames["page-wrapper"].location = url;
            localStorage.setItem("url",url);
            clickFront();
        }
    });

});

答案 1 :(得分:0)

查看下面的示例,一切都按预期工作

var anchors = document.querySelectorAll('a');
Array.prototype.forEach.call(anchors, function(a) {
  a.onclick = function(e) {
    e.preventDefault();
    window.frames.frame1.src = a.getAttribute('href');
  }
});
<ul>
  <li>
    <a href="http://stackoverflow.com">Stackoverflow main page</a>
  </li>
  <li>
    <a href="http://stackoverflow.com/users/2308005/medet-tleukabiluly?tab=profile">My profile</a>
  </li>
  <li>
    <a href="http://stackoverflow.com/questions/41629581/node-js-obtain-access-token">Question: Node.js obtain access token</a>
  </li>
</ul>
<hr />
<iframe id="frame1" width="500" height="200" src="http://stackoverflow.com/questions/41629578/when-iframe-page-refreshes-it-redirect-to-the-same-page-not-to-the-main-page"></iframe>