history.pushState 错误,使用 fancybox “无法在'历史'上执行'pus
history.pushState error using fancybox "Failed to execute 'pushState' on 'History': A history "
我正在使用' fancy box
',我正在尝试将我的网址
更改为fancy box
的网址,所以我尝试使用History.pushState()
。
但它犯了错误
错误:
未捕获的安全错误:无法对"历史记录"执行"pushState":无法在源为"http://localhost:28587"的文档中创建具有 URL "about:blank"的历史状态对象
我的代码:
var _url = window.location.href;
setInterval(function () {
if (($(".fancybox-iframe").length > 0))
{
if(window.location.href != $('.fancybox-iframe').contents().get(0).location.href)
{
history.pushState(null, null, $('.fancybox-iframe').contents().get(0).location.href);
}
}
else
{
if(window.location.href != _url)
{
history.pushState(null,null, _url);
}
}
}, 80);
我会搜索它但没有找到答案,请帮助我
或建议我更好的解决方案。
(我找到了这个:Javascript历史。推送状态不起作用?但我从答案中不明白我的代码中有什么问题)
编辑:
另一个问题是,当我在浏览器中按"返回"时,URL 已更改但未实际加载,为什么?
history.pushState
有安全限制,其中之一是不允许应用程序将跨源 url-s 推送到历史记录。这种明显的行为,您可以阅读有关您链接到的问题的更多信息。
查看您的错误消息,我猜您的源服务器 http://localhost:28587。无论如何,回答我的评论,您说您尝试使用源 http://localhost:27477 推送 url。正如您所看到的,它们具有不同的端口,从机器的角度来看绝对是不同的。
我不能推荐你绝对正确的方法来修复它。这取决于您的应用程序逻辑。首先,您可以使用一个端口来执行代码。其次,您可以使用某种代理(如nginx)来侦听两个端口。第三,你可以推送相对路径(/PerPage/content.php?d=1&f=1
),如果它不破坏应用程序的逻辑。尝试谷歌解决方案,您可以接受。
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 视频HTML没有'无法在Internet Explorer 11上工作
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 无法在ajaxStart中更改跨度文本
- angular.js没有'无法在PhoneGap中处理视图标记
- Foreach无法在Typescript中工作
- 无法在JS中显示谷歌地图
- 为什么无法在TypeScript中导出类实例
- 无法在Ionic select中预先选择最后一个选项
- 无法在本地计算机中将画布另存为图像
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- window.onload没有'无法在Android WebView中工作
- 未捕获错误:无法在初始化之前调用方法;
- 无法在窗口内使用rootScope.通知
- HTML锚标记无法在android平台中下载文件
- history.pushState 错误,使用 fancybox “无法在'历史'上执行'pus
- Backbone router.navigate() 给出 无法在“历史记录”错误上执行“pushState”
- 无法在嵌入式应用程序中使用位置历史记录:ember-js
- 无法在第一次加载时回到历史
- 历史记录搜索无法在 Chrome 扩展程序中执行