如何在 Chrome 扩展中编写一些 javascript,以便如果运行 javascript 代码,并且用户按下后退按钮,它会返回两次?

2024-06-19

基本上,在我的 Chrome 扩展中,它会在域内的某些页面上创建重定向。这确实是我希望它所做的行为。我不想改变这一点——这是必需的。

我想做的是,当用户按下后退按钮时,它会在脚本运行时返回两次 - 从而避免这个问题。

请参阅下面的示例:

1)用户访问量http://domain.com/page1.html http://domain.com/page1.html
2)用户点击页面http://domain.com/page2.html http://domain.com/page2.html
3)浏览器扩展脚本导致其重定向到立即地。
4a)当用户按一次返回按钮时,返回到http://domain.com/page2.html http://domain.com/page2.html然后将它们重定向回,让他们沮丧。
4b)当用户连续按两次返回按钮时,返回到http://domain.com/page1.html http://domain.com/page1.html就像他们本来打算做的那样。

我想要做的是添加一些导致它的东西,这样导致重定向的任何页面上运行的 javascript 也会使得当用户单击后退按钮一次时,它会返回两次。


Update:

这是我正在做的事情:

function backTwo()
  {
  window.history.go(-2)
  }

if {
  [SOME CODE TO SAY THAT THE STRING &aaa EXISTS IN THE URL]
}

then {
  [SOME CODE TO SAY RUN backTwo() FUNCTION]
}

else {
  [SOME CODE TO SAY DO NOTHING]
}

我不太确定下一步该做什么。我并不是真正的 JavaScript 编码员,我只是想将此功能添加到扩展中。

如果你能给我举个例子,那会有很大帮助。


而不是使用背景页面modify历史导航行为,通过首先不创建历史条目来避免该问题。

例如,通过使用location.replace http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-location-replace in a 内容脚本 https://developer.chrome.com/extensions/content_scripts.html:

// Running on http://domain.com/page2.html
location.replace('http://domain.com/page2.html&aaa');

清单文件:

  "content_scripts": [{
      "matches": ["*://domain.com/page2.html"],
      "js": ["redirect.js"],
      "run_at": "document_start",
      "all_frames": true
  }],

EDIT:
你声称location.replace不从服务器获取资源。这不是真的。您遇到的情况是您的页面是cached http://en.wikipedia.org/wiki/Cache_%28computing%29#Web_cache通过浏览器。要确保从服务器重新加载页面,请使用缓存清除 http://www.adopsinsider.com/ad-ops-basics/what-is-a-cache-buster-and-how-does-it-work/方法,例如将随机查询字符串参数附加到您的 URL:

// Running on http://domain.com/page2.html
location.replace('http://domain.com/page2.html?aaa&_t=' + new Date().getTime());

在前一种情况下,您将导航到http://domain.com/page2.html?aaa&_t=1234...。的价值1234...相当独特,因此该页面永远不会获取浏览器的本地缓存。

你控制服务器吗?如果是,您还可以通过标头禁用缓存。有关此主题的更多信息,请参阅确保所有浏览器中的网页都不会被缓存 https://stackoverflow.com/questions/49547/making-sure-a-web-page-is-not-cached-across-all-browsers.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Chrome 扩展中编写一些 javascript,以便如果运行 javascript 代码,并且用户按下后退按钮,它会返回两次? 的相关文章

随机推荐