javascript的历史.pushState对iframe不起作用

javascript history.pushState not working for iframe

本文关键字:iframe 不起作用 pushState 历史 javascript      更新时间:2023-09-26

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

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

但它不工作,请谁有一个想法如何实现这一点?

使用history.pushState()会改变iframe源页面的url。要更改地址栏中的主url你必须将其定位到父url,所以使用

window.parent.history.pushState();

你只需要保持函数调用包装在click事件括号…

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