Javascript 如何将参数传递到第三方iframe?

Javascript 如何将参数传递到第三方iframe?,javascript,iframe,cross-domain,Javascript,Iframe,Cross Domain,我正在运行一个应用程序A,我在页面B的iframe中运行。A和B在不同的域上运行,因此iframe是一个跨源第三方iframe。iframe有一个sandbox=“允许下载允许表单允许modals允许弹出窗口允许脚本允许相同来源允许通过用户激活进行顶部导航” 另一个在不同域上运行的页面C包含指向页面B的链接。我想修改此链接,将参数传递给iframe a,这样当通过链接打开页面B时,应用程序a的显示方式将与使用其他方式打开页面B时的显示方式不同 我可以控制应用程序A和C页,但不能控制B页 当然,通

我正在运行一个应用程序A,我在页面B的iframe中运行。A和B在不同的域上运行,因此iframe是一个跨源第三方iframe。iframe有一个
sandbox=“允许下载允许表单允许modals允许弹出窗口允许脚本允许相同来源允许通过用户激活进行顶部导航”

另一个在不同域上运行的页面C包含指向页面B的链接。我想修改此链接,将参数传递给iframe a,这样当通过链接打开页面B时,应用程序a的显示方式将与使用其他方式打开页面B时的显示方式不同

我可以控制应用程序A和C页,但不能控制B页

当然,通过链接传递参数的通常方法是查询参数。在这种情况下,查询参数不起作用,因为应用程序a在跨源iframe中运行,因此无法访问页面B的URL或查询参数

我试过用饼干。来自页面C的链接将指向在应用程序a的域下运行的资源,该资源将设置cookie,然后转发到页面B。iframe随后可以读取并丢弃cookie。问题是这个cookie是iframe上下文中的第三方cookie,因此Safari会阻止对它的访问,将来其他浏览器也会阻止对它的访问

我还可以使用哪些其他方式将参数从页面C传递到应用程序a


由于链接在新选项卡中打开,这意味着C页和B页将同时打开。我想到的一个想法是,在页面C和应用程序A之间建立某种跨窗口通信。页面C可以嵌入来自应用程序A域的iframe,该iframe可以注册一个服务工作者,以某种方式用作两个选项卡之间的中继。我不知道这是否可能更新:当第三方cookie被禁用时,第三方iFrame中的服务工作者似乎无法启用。注册这样的服务人员失败,“用户拒绝使用服务人员的权限”。

是否记录了
引用人的工作?或者类似于将
document.domain
设置为A页B页的域?