标签: browser-history

Chrome.History获取引用网址(JS)

我想写一个chrome扩展,它不仅列出了历史记录中访问过的URL,还列出了引用的URL.例如,如果我点击谷歌的维基百科,它应该说"维基百科:谷歌提到".

我最初的尝试是为相关的URL取一个HistoryItem,提取它最近的VisitItem,然后使用referVisitId来追踪初始URL,但这是我被卡住的地方.我的问题归结为不理解referVisitId的含义.它是打开新页面的历史项目的ID吗?它是由URL点击启动的VisitItem的ID吗?文档说明它是"推荐人的访问ID",但这仍然让我感到困惑.

1)referVisitId是什么意思?

2)我可以使用referVisitId来追踪引用网址吗?如果是这样,怎么样?

感谢您的时间!

javascript browser-history google-chrome-extension

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

如何在JavaScript中使用window.history?

我在Stack Overflow上发现了很多关于这个问题的问题,但是他们都对某些部分非常具体.我确实找到了这个问题,其答案提供了一些很好的参考,但它们并没有真正解释它是如何工作的,它们的例子几乎没有做任何事情.我想更多地了解它是如何一起工作的,我想使用vanilla JavaScript.

(此外,其他问题的许多答案都已有数年之久了.)

javascript html5 browser-history html5-history

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

在 iOS9+ safari 中,当用户从边缘滑动时,有没有办法检测(JS)?

如今,在 iOS Safari 中,用户可以通过从屏幕最左或最右滑动来触发系统后退或前进。

我想知道是否有一种方法可以在这种情况发生时(以及历史导航发生后)检测到这种情况(通过 JavaScript)。也就是说,将其与不会引起系统行为的滑动区分开来,并将结束导航与后退按钮触发的导航区分开来。

我发现可能有一种 hacky 方法可以检测 iOS7 上的导航是否由滑动触发(基于缺少 touchend 的错误),但我不确定该方法在 iOS 9+ 中是否有效。另外,它不会告诉我滑动过程中发生了什么(理想情况下,我需要在系统执行其操作时抑制触摸移动处理程序......)。

javascript safari swipe browser-history ios

6
推荐指数
0
解决办法
1324
查看次数

bootstrap 3关闭模式按下浏览器后退按钮

我只是想创建一个模态页面,其行为相同,要么使用bootstrap 3按下浏览器后退按钮或模式内的关闭按钮.我找到了一个脚本来执行此操作,但是存在问题.让我说我开始使用google.com,转到这个模态页面,然后推送"模态!" 按钮,然后按下浏览器后退按钮,它将关闭模式,如果我再次按下后退按钮,它将带我回google.com(一切都很好).但是这一次,如果我打开模态页面并使用"关闭"按钮关闭模态.但现在,我必须按两次后退按钮才能返回google.com.如果我用模态内的关闭按钮打开和关闭模态,如10x.我发现我必须再次按下浏览器10按钮才能返回google.com页面.如何解决这个问题?TIA

<!--html, bootstrap 3.2.0-->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
  <div class="modal-body">
    <p>If you press the web browser's back button not the modal's "close" button, the modal will close and the hash "#myModal" will be removed for the URL</p>
  </div>
  <div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div>
</div>
</div>
</div>

<!--jquery-->
$('#myModal').on('show.bs.modal', function (e) {
    window.history.pushState('forward', null, '#modal');
});

$('#myModal').on('hide.bs.modal', function (e) {
    //pop the forward state to go back to original state before pushing …
Run Code Online (Sandbox Code Playgroud)

jquery browser-history bootstrap-modal

6
推荐指数
2
解决办法
7355
查看次数

history.replaceState不适用于Firefox v56 +

在我的应用程序中,要使用以下代码隐藏URL中的某些信息

history.replaceState ({}, "", "bar.html");
Run Code Online (Sandbox Code Playgroud)

它可以在所有浏览器中运行,但最新版本为firefox(v56 +)

在Firefox中,如果我按F5键,则它会返回到我已被上述代码替换的上一个URL。

任何帮助将不胜感激。

javascript firefox browser-history html5-history

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

当页面加载是AJAX历史记录点的结果时,如何检测客户端?

我试图阻止我的ASP.NET页面上发生的"闪烁"效果,当用户导航离开它时,用户通过浏览器后退按钮导航到页面时发生这种情况.闪烁的原因是我使用的是更新面板,在初始页面加载时会有一些内容.因此,当通过后退按钮加载页面时,初始内容会在使用正确的历史记录感知数据更新之前非常短暂地显示.

为了克服这个问题,我打算在初始页面加载时隐藏updatepanel(display:none),然后只要我们没有任何历史记录可以显示它.问题是我无法找出要检查的内容以确定是否有任何历史记录.我可以看到Sys.Application有一个_history成员但是当我在init初始检查它时,每次都是null.

有谁知道我应该检查什么以确定是否有历史要处理页面加载客户端?在什么时候这样做?

asp.net ajax asp.net-ajax browser-history

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

巧妙管理浏览器历史记录的方法

我正在尝试在AJAX应用程序中实现一个不错的导航.我现在正在做的是以下内容:

  • 每次用户单击AJAX链接时,都会执行相应的调用并更改散列.
  • 每当加载新页面时,我都会检查是否存在哈希并进行相应的AJAX调用以更新页面.这可确保书签按预期工作.
  • 每隔500毫秒,我检查一下哈希是否被更改并执行相应的AJAX调用.这会照顾用户按下后退/前进按钮,尽管有一个延迟.

第三点有点烦人:我宁愿每隔500毫秒没有超时检查哈希值,因为大部分时间它都会保持不变.

有没有更好的方法来管理这个?我想不出任何其他选择,但也许我错过了一些东西.

请不要指出我现成的解决方案,除非你知道它们是基于不同的机制.

javascript ajax browser-history

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

在History.js中有没有办法知道何时按下后退按钮

我已经开始测试History.js了.在了解它是如何工作以及没有之后popstate,相反statechange.当按下浏览器的后退按钮时,我正在寻找一种不同的方法.

原因是我需要知道状态移动之前的URL,从我要去的那个.根据项目包含的要点,只查看我们访问的URL.

我希望解决方案不是跟踪全局变量中访问的最新URL.

谢谢

javascript browser-history history.js

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

jQuery Mobile导航 - 为什么状态为空?

我正在使用$.mobile.navigate("#test-page", {id:123})导航到辅助页面.

从页面到页面的导航工作正常....但状态是空的!

文档清楚地表明,状态应包含执行导航时所需的所有信息.

这是我正在使用的代码:

$(window).on('navigate', function(event, data) {
  console.log("navigated", data);
  console.log(data.state.info);
  console.log(data.state.direction);
  console.log(data.state.url);
  console.log(data.state.hash);
  if (data.state.hash === "test-page") {
    console.log("Test page", data.state.id);
  }
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,数据传递为空:

{
    state:{}
}
Run Code Online (Sandbox Code Playgroud)

HTML如下:

<div id="test-home" data-role="page">

      <div data-role="header">
          <h1>Test Home</h1>
      </div>
      <div data-role="content">
          <div id="test-btn">
            Click DIV for TEST page
          </div>
      </div>
      <div data-role="footer">
      </div>

  </div>


  <div id="test-page" data-role="page">
     <div data-role="header">
          <h1>Test Page</h1>
     </div>

     <div data-role="content">
        Test page

     </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

希望有人可以提供帮助.谢谢!

javascript ajax jquery browser-history jquery-mobile

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

防止在“后退”按钮上重新加载页面(使用缓存)。或向下滚动用户。(至少在iPhone上发出)

是否可以防止用户单击浏览器的后退按钮时重新加载页面?还是至少确保页面像以前一样向下滚动?

我的网页显示项目列表。用户向下滚动,然后单击某个项目以转到另一个页面。当他们然后单击“后退”按钮时,我希望他们回到原来的页面,向下滚动。

这在我的桌面(Windows,Chrome)上可以正常工作,但是在我的iPhone(iOS7,Safari和Chrome)上,它可以重新加载页面,这首先需要花费时间,而且很烦人。然后,Chrome浏览器向下滚动,但Safari不会向下滚动,这意味着用户又回到了顶部。实际上,该行为似乎并不十分一致。

这仅仅是浏览器做出的决定吗?屏幕锁定并解锁后,它还会重新加载页面。(再次,我正在尝试在iPhone上使用。)或者是否与我的html / header / js有关?

我在考虑可以使用HTML缓存,然后在页面本身上跟踪用户滚动了多远。然后,当从缓存中重新加载页面时,我可以使其向下滚动到之前的位置。那真的是要走的路吗?

看起来www.amazon.com可以正常运行,所以必须有一些解决方案。

html javascript browser-history

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