标签: browser-history

我正在寻找有关互联网浏览器历史的出版物

我正在寻找有关互联网浏览器历史的出版物.论文,文章,博客文章等等.在ACM IEEE等上找不到任何东西,我的博客搜索也没有发现任何显着的信息.

browser browser-history

2
推荐指数
1
解决办法
233
查看次数

使用ajax支持浏览器后退按钮而不依赖于散列更改?

我目前正在使用jQuery BBQ插件来启用bowser导航按钮,但我遇到的问题是,如果用户为其中一个页面保存了书签,请说...

www.mysite.com/#page1
Run Code Online (Sandbox Code Playgroud)

当用户通过书签返回时,整页必须首先加载...

www.mysite.com/
Run Code Online (Sandbox Code Playgroud)

在url的哈希部分之前可以用于ajax回调来完成页面.

为了解决这个问题,我尝试在主页面的所有url调用上只创建一个"骨架"页面,以便通过ajax获取所有"内部"内容,但这似乎不是一个很好的解决方案.

有没有人知道任何不使用'hash'方法来支持'后退按钮历史记录等的方法/插件?

jquery browser-history jquery-bbq

2
推荐指数
1
解决办法
3137
查看次数

GWT,删除历史记录令牌

我有一个GWT项目,使用活动和地点.我的问题是历史令牌.

我的令牌模式:

#/{key 1}/{value 1}/{key 2}/{value 2}  
Run Code Online (Sandbox Code Playgroud)

值1必须是数字

值2必须是数字

有效令牌是:

#/view/1/date/123123123123
Run Code Online (Sandbox Code Playgroud)

我决定验证令牌然后出现问题.

例如,如果用户手动更改令牌:

#/view/qqweqweqwedate/date/123123123123
Run Code Online (Sandbox Code Playgroud)

在这种情况下,值1不是数字.我捕获此异常并使用默认值修复令牌.问题是无效令牌在历史记录中,当我点击浏览器上的"后退"按钮时,它再次出现.

有人可以告诉我如何从历史记录中删除无效令牌或不允许在历史记录中写入它吗?

gwt token browser-history

2
推荐指数
1
解决办法
1410
查看次数

GWT上传表格导致浏览器返回冻结Chrome中的页面

我们在GWT中有一个上传表单,用于上传文件.它在上传文件时工作正常,但如果我们连续上传两个以上的文件,然后点击浏览器后退按钮,就会发生奇怪的事情.页面消失,最终重新加载,然后冻结.在重新加载之前,没有按钮可被点击.这种情况发生在Chrome 39中,但不是我尝试过的其他浏览器(和旧版本的Firefox).

为什么表单面板会提交类似的内容?我该如何解决?我似乎找不到从历史记录中删除表单提交的方法,或者是一种不使用GWT的FormPanel和FileUpload上传文件的简单方法.我不能只是在每次上传文件后重新加载页面,因为刷新非常慢.

这是创建面板相关部分的代码:

FormPanel uploadForm = new FormPanel();
uploadForm.setEncoding(FormPanel.ENCODING_MULTIPART);
uploadForm.setMethod(FormPanel.METHOD_POST);
uploadForm.setAction(servletPath + destinationUrl);

FileUpload fileInput = new FileUpload();
uploadForm.add(fileInput.asWidget());
Run Code Online (Sandbox Code Playgroud)

当用户点击上传所选文件时,我们使用:

uploadForm.submit();
Run Code Online (Sandbox Code Playgroud)

GWTUploadProject是不是一个解决方案,因为它的工作原理可以说是雪上加霜.如果您尝试在上传示例页面后单击后退,则会显示以前上传图像的额外缩略图!

java gwt file-upload browser-history

2
推荐指数
1
解决办法
747
查看次数

TypeError:'replaceState'在未实现接口历史记录的对象上调用

我正在看这段JavaScript代码

if (history) {
    var action = settings.replaceState ? history.replaceState : history.pushState;
    if (action) {
        // next line throws the error
        action(null, null, window.location.pathname + window.location.search + '#' + hash);
    }
}
Run Code Online (Sandbox Code Playgroud)

settings.replaceState == true

微软的最新东西给了我

无效的呼叫对象

在Chrome中,同一段代码会抛出该错误

未捕获的TypeError:非法调用

我在Firefox中收到此错误

TypeError:'replaceState'在未实现接口历史记录的对象上调用。

当我调试历史记录时,它看起来应该是正确的,并且有一个包含此方法的原型。

除了不同的错误消息,谁能告诉我这是怎么回事?

javascript browser-history

2
推荐指数
1
解决办法
409
查看次数

如何在React Router 3.x中配置基本名称

我有一个在嵌套URL而不是根目录下运行的应用程序。可以说example.com/app

在这里阅读,您可以在React Router 2.x中配置基本名称。

如何在React Router 3.x中做到这一点?

仅供参考,我也在使用react-router-redux包裹。

browser-history reactjs react-router react-router-redux

2
推荐指数
1
解决办法
3151
查看次数

HTML5 History API:从另一个页面导航回来时不会调用“popstate”

我必须维护一个带有 AJAX 搜索表单的站点(例如书籍),并且我希望搜索结果成为浏览器历史记录的一部分。

所以我设置了“popstate”事件处理程序

window.addEventListener('popstate', function(e) {
    alert("popstate: " + JSON.stringify(e.state));
});
Run Code Online (Sandbox Code Playgroud)

并在成功的 AJAX 请求后调用pushState()

var stateObj = { q: "harry potter" };
window.history.pushState(stateObj, "Result", "/search");
Run Code Online (Sandbox Code Playgroud)

然后我的点击流是:

  1. 使用搜索表单加载页面 - 正常请求 - 路径为 /
  2. 输入查询字符串并提交表单 - AJAX 请求 - 路径更改为/search
  3. 单击搜索结果 - 正常请求 - 路径更改为/books/harry-potter

  1. 当我走了回去通过点击浏览器的后退按钮,我会希望与根据状态对象触发了“popstate”事件。但什么也没有发生。-路径更改为 /search

  1. 当我再回去一次时,我收到一条警告,其中popstate: null -路径更改为 /

  2. 当我在那之后继续前进时,我得到popstate: {"q":"harry potter"} -路径更改为 /search


因此,重要的 popstate 事件(带有查询字符串的事件)仅在前进时触发,而在返回时不会触发。

这是因为我从一个站点导航回来,它的历史条目是自动创建的,而不是由 pushState 以编程方式创建的?但如果是这样,History API …

javascript browser-history html5-history

2
推荐指数
1
解决办法
1732
查看次数

有没有办法使用“后退”按钮关闭模式而不篡改浏览器历史记录状态?

我有一个相当具体的用例。

想象一下我从页面 A导航到页面 B(添加一个历史状态)。然后,在页面 B 上,我通过打开模式与该页面进行交互。但模式的实现方式是单击浏览器后退按钮时关闭。

当模态打开时:

ngOnInit(): void {
        history.pushState(null, null, this.pageBHomeUrl + "?modal");
    }
Run Code Online (Sandbox Code Playgroud)

当它关闭时,模态状态将替换为之前的主页 url:

close(): void {
        history.replaceState(null, null, this.pageBHomeUrl);
    }
Run Code Online (Sandbox Code Playgroud)

当我关闭模式时,我的浏览器历史记录如下所示(最近的在前)

  • pageB主页网址
  • A页

但是,我想确保可以关闭模​​式,同时将页面 A 保留为最新的历史状态...有没有办法删除 pageBHomeUrl 历史状态或向前移动 pageA 状态?或者使用后退按钮关闭模式而不更改历史状态?

javascript browser-history angular

2
推荐指数
1
解决办法
1166
查看次数

Location.go()之后,History.back()不会触发ActivatedRoute.paramMap

考虑这个网址:

http://localhost:4200/items

当在 GUI 中打开(展开)元素时,我使用Location.go() 来更新 URL :

http://localhost:4200/items;openedId=123
Run Code Online (Sandbox Code Playgroud)

当我点击后退按钮时,URL 更改回http://localhost:4200/items,但我对 ActivatedRoute.paramMap 的订阅未触发。(因此我的物品保持打开状态)

奇怪的是,当我连续打开两个元素,然后回击两次时,就会触发它:

Open main page -> http://localhost:4200/items
Open item 123  -> http://localhost:4200/items;openedId=123
Open item 456  -> http://localhost:4200/items;openedId=456

Back to http://localhost:4200/items;openedId=123 -> ActivatedRoute.paramMap triggered
Back to http://localhost:4200/items -> ActivatedRoute.paramMap triggered (!)
Run Code Online (Sandbox Code Playgroud)

为什么第一次不触发?为什么我需要有两个历史记录才能工作?我很困惑。

更新:这是我监听 paramMap 中的更改的方式:

  public ngOnInit() {

    this.subscriptions.add(this.activatedRoute.paramMap.subscribe(paramMap => {
      this.handleNavigation(paramMap);
    }));
}
Run Code Online (Sandbox Code Playgroud)

browser-history angular-routing angular

2
推荐指数
1
解决办法
2469
查看次数

history.back() - 如果没有历史记录,如何设置默认值

我正在努力为用户提供聪明和体贴,但我又一次遇到了"设计"问题.

我在网站上有很多页面,我选择删除默认导航并用一个简单的"后退"按钮替换它.

后退按钮的功能如下:

href="javascript:history.back()"
Run Code Online (Sandbox Code Playgroud)

我也"没有索引"这些页面,所以理论上一切都很好.

但是,我还有一个问题 - 它可能永远不会发生,但知道如何解决它会很好.

假设用户为该页面添加书签.目前还没有回头路,所以我想知道是否有可能创建默认值href="/"但是如果有历史记录则以某种方式覆盖它.事实上,如果我能够确定是否存在任何历史记录,那么修改JavaScript函数就足够了.

这可能吗?我不是JS大师,所以我可能会尝试实现一些无法实现的东西.

javascript browser-history

1
推荐指数
1
解决办法
1569
查看次数