javascript history.pushState不适用于iframe

时间:2016-11-08 15:12:00

标签: javascript jquery iframe

我想运行一个pushState并且它工作正常但是当我通过iframe元素加载页面时它拒绝工作。这就是我的代码的样子

$('a[href]').click(function){
    newHref = $(this).attr('href');
    history.pushState('', '', newHref);
})

但它不起作用,请任何人知道如何实现这个目标?

2 个答案:

答案 0 :(得分:4)

使用history.pushState()更改iframe源页面的网址。要更改地址栏中的主网址,您必须将其发送给父级,因此请使用此

window.parent.history.pushState();

答案 1 :(得分:0)

你应该只需要在click事件括号中保持被称为包装的函数......

$('a[href]').click(function(e){
    e.preventDefault();
    newHref = $(this).attr('href');
    history.pushState('', '', newHref);
});