是否有办法找到前一页的窗口(其他选项卡)
Is there a way to find the window of the previous page (other tab)?
如果您在新选项卡中打开链接(使用MMB或右键单击或首选方法),是否有办法从新选项卡window
找到打开器window
?
-
window.opener
-
window.parent
也许这是不可能的,因为跟随一个链接通常会"覆盖"窗口,所以没有ref是可能的,但是因为我们有标签…也许……裁判可以吗?
我想打开的窗口做一个postMessage
到原来的窗口,让它知道页面已经加载,所以原来的窗口可以更新链接样式。
我不制作这些页面,所以我不能访问后端或HTML打印。想想Greasemonkey:我给现有的网站添加了JS来改进它们。
我唯一能想到的是拦截点击事件,抓取URL,并将其传递给window.open
和随后的postMessage
调用返回的窗口对象。你用这些链接生成页面了吗?
在某些浏览器中,window.open(url,'_blank')
将在选项卡中打开。
我认为有两种方法可以解决你的问题
第一个解决方案:Cookies
一个简单的方法是在每次点击链接时用当前页面的值设置一个cookie,你可以使用像这样的库来设置一个cookie,并在你点击后在下一页获得它。
$("a").click( function () {
$.setCookie("currentPage",document.URL);
});
在下一页你会得到这样的cookie
if($.getCookie("currentPage") != undefined )
var previousPage = $.getCookie("currentPage");
第二个解决方案:服务器端语言如果你使用的是像php这样的服务器端语言,很容易得到前一页的url:
<?php
if (isset($_SERVER['HTTP_REFERER']))
echo "<script> var previousPage='" . $_SERVER['HTTP_REFERER'] . "'; </script>";
?>
最后,要发布消息,您只需要测试previousPage
变量是否设置:
if(previousPage != undefined)
{
// Code to post your message
}
相关文章:
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 在窗口滑动时重定向到其他页面
- 使用javascript防止其他弹出窗口
- 即使用户正在导航到其他页面,也要在一段时间后打开弹出窗口
- 从其他位置触发文件选择窗口
- 在其他模式弹出窗口中创建模式弹出窗口
- 简单模态弹出窗口 - 使用其他按钮关闭弹出窗口
- 在窗口和其他元素单击时隐藏
- 如何在同一应用的其他窗口上方创建 Chrome 应用窗口
- 精彩弹出窗口 - 向 iframe 添加其他类
- 弹出窗口重定向在IE中不起作用,但在其他浏览器中可以
- 重定向至“其他窗口JS”
- 是否可以使用 JQuery 或其他方法在两个浏览器窗口之间拖放一些内容
- 通过 flash 将 JavaScript 事件调度到其他窗口(和浏览器)
- 将弹出窗口悬停在图像上带有其他链接
- 为什么 iframe 可以从其他域更改父窗口的 URL
- 我可以使用 JavaScript 或任何其他技术根据用户输入将焦点切换到窗口或选项卡上吗?
- 如何制作弹出窗口以创建其他弹出窗口
- 隐藏元素并在浏览器窗口宽度小于时显示其他
- 是否有办法找到前一页的窗口(其他选项卡)