如何使用javascript从父窗口获取子窗口url

2024-01-10


我正在启动一个带有窗口引用名称的子窗口。我想在每次更改时捕获子窗口的 URL。

    var winRef;
    var url='http://www.google.com';
    if(winRef == null || winRef.closed) 
    { 
      winRef = window.open(url, "mywindow");
      winRef.focus();
      alert(winRef.location.href); 
    }
    winRef.captureEvents(Event.CHANGE);  
    winRef.onchange=function(){
      alert('change event triggered');
      console.log(winRef.location.href);
    }


我尝试使用事件 LOAD、CHANGE 来捕获窗口的位置变化。但 LOAD 和 CHANGE 事件仅触发一次。

我不想使用 setinterval 来检查 window.location.href 中的更改,因为它可能会导致性能问题。

有没有其他方法可以获取子窗口 URL?


您无法精确检测事件,但您可以采取解决方法并在 X 毫秒内检查 URL。

var self = this

var detectsUrl = setInterval(function(){
    var a = winRef.document.createElement('a');
    a.href = winRef.document.URL;
    if (a.hostname == "www.myURL.com") {
        winRef.close();
        clearInterval(detectsUrl);
        self.callback();
    };
}, 1000); // Here we check every seconds
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用javascript从父窗口获取子窗口url 的相关文章

随机推荐

  • 在 Android 上处理 React Native、Navigator 中的后退按钮

    我有一个Navigator在 Android 反应本机应用程序中 我在用着navigator push 导航到不同的页面 后退按钮会弹出导航器并返回一页似乎很自然 但事实并非如此 它会退出应用程序 做反应原生Navigator确实没有后退按
  • 使用 xslt 获取 X 位置处的节点值

    如何在不使用 foreach 的情况下使用 xslt X 位置的节点值
  • 获取Golang正则表达式中括号内的所有子字符串

    我想使用正则表达式获取 go 中所有括号内的所有子字符串 作为字符串 foo bar foo baz golang 的示例 我想要 bar 和 baz 在Python中我可以做re findall lt foo bar foo baz go
  • 卡尔曼滤波器总是在第一时间预测 0,0

    以下代码用于从下到上扫描图像 然而 卡尔曼滤波器的预测在第一次时总是显示0 0 这样 它就会从底部到 0 0 绘制一条线 如何使路径 卡尔曼滤波器 更接近实际路径 以下代码和图像已更新 import cv2 import matplotli
  • 布局API版本命名

    我不知道这是如何工作的 如果我创建了一个名为layout v11这适用于 v11 以上的所有 api 版本还是仅适用于 v11 第二个我可以将文件夹命名为layout v11 v14仅对 v11 和 v14 API 使用此布局 后缀指定资源
  • 从 xamarin 将文件上传到 Web api 服务器 - 请求处理时间太长

    我正在使用 HttpClient 将二进制文件发布到 Azure 托管的服务器 对于大小不太大的文件 该请求需要很长时间才能传递 有时 当客户端因超时而取消任务时 服务器会收到请求 我使用以下代码异步上传数据 public async Ta
  • Spirit X3可以与BOOST_FUSION_ADAPT_ADT一起使用吗?

    将我的代码从 QI 更改为 X3 并出现一些编译错误BOOST FUSION ADAPT ADT 我尝试了boost 1 64和1 67 它们都不起作用 我修改了精灵X3的例子rexpr min 添加 getter 和 setterstru
  • blogpost 的 rss feed 分页 url 是什么样的?

    我知道要访问 blogspot 博客的 rss feed 您需要访问 blog blogspot com feeds posts default 但是如何获取提要的第二页呢 我知道其他博客使用查询参数 paged 2 是否有类似的查询参数可
  • 如果资源已经存在,如何告诉 helm 不要创建/更改资源?

    我有一个秘密资源模板 安装后将为数据生成随机值 删除该图表 它没有删除秘密资源 因为它们保留下来 并稍后重新安装后 我遇到了问题 这导致它使用新生成的数据运行以前的秘密 这在我的情况下是不希望的 我试图找到我需要包含在模板中的 if 条件是
  • ASP.NET5 MVC6 的模型绑定问题

    我尝试将一些 JSON 数据以角度形式发布到我的 ASP NET5 MVC6 控制器操作 模型绑定器似乎不起作用 不知道我在这里缺少什么 我的 ASP 控制器 public class DefaultController Controlle
  • 有没有更好的方法为 numpy 数组标量分配新值?

    我正在对 numpy 数组中的标量值进行一些快速计算 正如它在文档 https docs scipy org doc numpy 1 13 0 user basics types html array scalars 使用数组标量的主要优点
  • 在ListBox中设置DrawMode删除水平滚动条

    我将列表框控件中的 DrawMode 设置为 OwnerDrawFixed 以便可以为某些项目着色 当项目太长而无法容纳列表框的水平空间时 不会出现水平滚动 怎样才能让滚动条出现呢 您应该在 OwnerDrawFixed 模式下设置列表框的
  • WPF dataGrid 多列的超级标题

    我想在WPF中为多列做标题DataGrid 我尝试使用标题模板 但它会显示一列的标题 下面的 XAML 我尝试过
  • MS Access 限制 X、Y

    是否可以模拟以下 MySQL 查询 SELECT FROM tbl ORDER BY date DESC LIMIT X 10 X为参数 在 MS Access 中 虽然访问 JET TOP关键字不直接提供OFFSET能力 我们可以巧妙地结
  • 为什么 NHibernate AutoFlush 检查如此昂贵?

    在实践中 我们发现默认的 NHibernate v2 0 2 1 FlushMode Auto 非常昂贵 查看 NHibernate 源代码表明 确定需要刷新的内容的算法依赖于循环遍历会话中所有实体的强力 并且这种情况发生在事务中运行的每个
  • 迁移时可以添加级联删除规则吗?

    在 FluentMigrator 迁移中 如果我定义关系 请说 Create Table RelatedTable WithColumn RelatedTableId AsGuid PrimaryKey WithColumn MainTab
  • 把 $$s 放在 `equation` 环境中:为什么 Latex 不抱怨?

    我很惊讶最近的问题中的 Latex 代码没有抛出任何错误 更令我惊讶的是进一步的调查 克劳利的解释 https stackoverflow com questions 2892982 formatting equations in late
  • 将整数转换为 std_logic

    假设你有一个循环 for i in 1 downto 0 loop for j in 1 downto 0 loop tS0 lt i 但我需要将整数 这是自然的 转换为 std logic tS0被声明为 std logic 我只做了一位
  • jQuery keydown 触发器不起作用

    我在文档加载结束时运行此脚本 function input keydown 该脚本位于 chrome 扩展中 该扩展在用户加载的每个页面上运行并且不起作用 即在 Twitter 网站上 但是 如果在 chrome javascript 控制
  • 如何使用javascript从父窗口获取子窗口url

    我正在启动一个带有窗口引用名称的子窗口 我想在每次更改时捕获子窗口的 URL var winRef var url http www google com if winRef null winRef closed winRef window