请问各位大神微信内置浏览器不支持window.opener,有什么替换性的方法吗

时间:2021-04-07 19:35:25
如题,功能都实现完了在微信里测试的时候,才发现页面不显示。请问各位好心的大神,微信浏览器是不是不支持window.opener呀,可是用window.open就可以跳转页面,居然不能用window.opener获取父页面的内容,坑啊,请问有什么替换办法吗?

14 个解决方案

#1


带上参数跳转

#2


引用 1 楼 slwsss 的回复:
带上参数跳转

你好,我是在两个html页面之间获取页面的,比如:a页面通过window.open("b.html")跳转到b页面,然后在b页面通过window.opener获取a页面的内容。所以,您可以跟我说的详细点吗?嘿嘿,多谢啦

#3


以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

#4


引用 3 楼 jikeytang 的回复:
以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

首先谢谢您。
如果我用您说的第一种方法location.href从a.html跳转到b.html,然后我在b.html要加载a.html的部分页面内容要怎么做

#5


引用 4 楼 unique_1 的回复:
Quote: 引用 3 楼 jikeytang 的回复:

以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

首先谢谢您。
如果我用您说的第一种方法location.href从a.html跳转到b.html,然后我在b.html要加载a.html的部分页面内容要怎么做

我了解的有这样几种办法,
1. jquery 的load方法。
2. requirejs有个text插件可以请求文本,然后添加到页面上。
3. vue之类的框架,本身就有组件的功能的提供。
4. 如果有后端语言就include。

#6


楼主解决没有 我也遇到同样的问题  也是都写好了 放进微信就不行了

#7


第一次偷偷发一个事件消息,专门用来记录 opener  好像是 event.来源 记不住那个单词了

#8


用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener

#9


怎么办啊,有没有解决的啊

#10


引用 8 楼 showbo 的回复:
用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener


如何用层来模拟呢

#11


用iframe加载子页面
子页面中用 window.parent 访问父页面

#12


引用 10 楼 qq_25552883 的回复:
Quote: 引用 8 楼 showbo 的回复:

用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener


如何用层来模拟呢

自己找artDialog, tipsWindownfacebox此列插件

#13


使用  qjax

#14


楼主解决没有,我也遇到相同的问题,请求支援、、、

#1


带上参数跳转

#2


引用 1 楼 slwsss 的回复:
带上参数跳转

你好,我是在两个html页面之间获取页面的,比如:a页面通过window.open("b.html")跳转到b页面,然后在b页面通过window.opener获取a页面的内容。所以,您可以跟我说的详细点吗?嘿嘿,多谢啦

#3


以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

#4


引用 3 楼 jikeytang 的回复:
以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

首先谢谢您。
如果我用您说的第一种方法location.href从a.html跳转到b.html,然后我在b.html要加载a.html的部分页面内容要怎么做

#5


引用 4 楼 unique_1 的回复:
Quote: 引用 3 楼 jikeytang 的回复:

以下几种办法:
1. location.href="a.html?b=1&c=2‘ 这样跳转。
2. 单页面应用,其实就是在本页面弹出一个大的遮罩层。
类似这样的插件。
https://github.com/camme/jquery-router-plugin
3. 手动直接弹出一个大的div,通过ajax装载数据,然后利用pushState来控制url,以便返回,其实就是手动实现一个router。
4. 把相关的数据存储到cookie,localstorage。

首先谢谢您。
如果我用您说的第一种方法location.href从a.html跳转到b.html,然后我在b.html要加载a.html的部分页面内容要怎么做

我了解的有这样几种办法,
1. jquery 的load方法。
2. requirejs有个text插件可以请求文本,然后添加到页面上。
3. vue之类的框架,本身就有组件的功能的提供。
4. 如果有后端语言就include。

#6


楼主解决没有 我也遇到同样的问题  也是都写好了 放进微信就不行了

#7


第一次偷偷发一个事件消息,专门用来记录 opener  好像是 event.来源 记不住那个单词了

#8


用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener

#9


怎么办啊,有没有解决的啊

#10


引用 8 楼 showbo 的回复:
用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener


如何用层来模拟呢

#11


用iframe加载子页面
子页面中用 window.parent 访问父页面

#12


引用 10 楼 qq_25552883 的回复:
Quote: 引用 8 楼 showbo 的回复:

用层来模拟,不要用window.open,微信不支持多标签,window.open会在当前页面打开。。根本没有opener


如何用层来模拟呢

自己找artDialog, tipsWindownfacebox此列插件

#13


使用  qjax

#14


楼主解决没有,我也遇到相同的问题,请求支援、、、