移动端不支持window.open,回调函数callback和opener异常,弹出窗口子页面调用原来父页面的方法

news/2024/7/11 1:25:28 标签: javascript, jquery, java, js

1.移动端不支持window.open

移动端是不支持window.open打开小窗口的,会自动转成打开一个新页面,你可以使用第三方插件layer.open实现打开小窗口的功能。

第三方插件layer.open的使用可以参考官方API地址如下
layer.open官方API

分享一个我的代码和效果图:

javascript>javascript">  	  $('#gyslb').on('click', function(){
  	  var gslbs = $("#gslb").val();
	 layer.config({
	      extend: '../../../layer.css' //自定义定义手机端弹窗皮肤,可以省略
	   });
	 layer.open({
	      type: 2,
	      area: ['90%', '90%'],
	      title: '选择经营品目',
	      shadeClose: true, //点击遮罩关闭
	      //maxmin: true, //最大、最小按钮
	      content: '../../****.html,//小窗口页面的地址
	    });
  });

在这里插入图片描述

2.移动端不支持opener,导致回调函数异常

使用了layer.open后,可以把opener换成parent,即可解决这个问题

3. layer弹出层父子页面事件相互调用方法

原文
父页面

javascript>javascript"><body>
 
<a data-url="bbbb.html" id="parentIframe">小小提示层</a>
<input id="shuzhi" />
<button class="but_par">父页面</button>
</body>
<script src="../jquery-1.9.1.min.js"></script>
<script src="layer/layer.js"></script>
<script>
$(function(){
$("#parentIframe").click(function(){
var a = $(this).attr("data-url");
layer.open({
  type: 2,
  content: a,
  success: function(layero, index){
    var body = layer.getChildFrame('body', index);//获取子页面内容
    var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
   body.find("#transmit").click();//执行子页面的方法
    body.find('input').val('Hi,我是从父页来的')
    $(".but_par").click(function(){
    alert(222);
    })
  }
}); 
})
})

子页面

javascript>javascript"><body>
<input id="name" value="不满意" />
<button id="transmit">给父层传值</button>
</div>
</body>
<script>
$(function(){
$(document).on("click","#transmit").click(function(){
parent.$("#shuzhi").val($("#name").val());
parent.location.reload(); 刷新父页面
//关闭layer弹出层
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
parent.layer.close(index);
})
window.parent.$(".but_par").click();//执行父页面的事件
})
</script>

http://www.niftyadmin.cn/n/1679370.html

相关文章

Unicode与GB18030私用区对应表

GBK用户自定义区&#xff1a;1区&#xff1a;AAA1-AFFE&#xff0c;码位 564 个。2区&#xff1a;F8A1-FEFE&#xff0c;码位 658 个。3区&#xff1a;A140-A7A0&#xff0c;码位 672 个。 Unicode码点 GB18030-2022码点 E000-E233 AAA1-AFFE E234-E4C5 F8A1-FEFE E4C6-E…

The Desktop Files Deploying Windows XP with the WAIK

The Desktop Files Deploying Windows XP with the WAIK[url]http://technet.microsoft.com/en-us/magazine/cc434705.aspx[/url]转载于:https://blog.51cto.com/foreach/113193

linux如何把postgresql添加到环境变量_如何管理你的 Linux 环境变量

Linux 用户环境变量可以帮助你找到你需要的命令&#xff0c;无须了解系统如何配置的细节而完成大量工作。而这些设置来自哪里和如何被修改它们是另一个话题。-- Sandra Henry-stocker&#xff08;作者&#xff09;在 Linux 系统上的用户账户配置以多种方法简化了系统的使用。你…

Excel Unicode相关函数与VBA代码

EncodeURL()函数求UTF-8TRIM(SUBSTITUTE(ENCODEURL(A2),"%"," "))TRIM函数可去除首尾空格&#xff0c;SUBSTITUTE函数可把%号替换为空格&#xff0c;ENCODEURL函数则把字符转成URL的UTF-8&#xff0c;因此会有%号。UNICHAR()函数把16进制Unicode转成字符UN…

mysql索引字段的使用顺序_MySQL之索引:索引字段使用顺序对复合索引有效性的影响...

整理下复合索引中&#xff0c;使用顺序对索引有效性的影响首先这里建立一张数据表&#xff0c;并建立符合索引( index_A,index_B,index_C)CREATE TABLE test_index_sequence (Id int(11) NOT NULL AUTO_INCREMENT,index_A varchar(255) DEFAULT NULL,index_B varchar(255) DEFA…

pip 安装pycrypto 报错

2019独角兽企业重金招聘Python工程师标准>>> pip 安装pycrypto 报src/MD2.c:31:20: error: Python.h: No such file or directory 错误解决 gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE2 -fexceptions -fstack-protector --paramssp-buff…

org.apache.tapestry.BindingException: Unable to read OGNL expression ‘<parsed OGNL expression>‘ of $

我的项目用的是tapestry框架 代码在本地正常运行&#xff0c;提交到测试环境后&#xff0c;报了这个异常&#xff0c;css和js文件都丢失了。 本来我以为是request.getContextPath()的问题 因为有一行报错是&#xff1a; Caused by: ognl.NoSuchPropertyException: $BasePage_…

郭雨春:三十年之悟 CIO要拿得起放得下

首钢自动化研究所远离喧嚣的市区&#xff0c;背靠着秀丽的石景山。只要人在北京&#xff0c;首钢自动化研究所的总工郭雨春都会早早的来到单位去爬山晨练&#xff0c;认识他的人都说他“是个敞亮的人”。四十年相伴 根在首钢郭雨春在首钢已经四十多年&#xff0c;亲历了首钢信息…