不灭的焱

革命尚未成功,同志仍须努力下载JDK17

作者:Albert.Wen  添加时间:2022-07-31 19:12:04  修改时间:2024-04-09 05:38:46  分类:前端/Vue/Node.js  编辑

1.jQuery获取iframe中的元素

由于公司项目开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素。

1.1 在iframe中获取父窗口的元素

// 格式:
$('#父窗口中的元素ID', parent.document).click();  

// 实例:
$('#btnOk', parent.document).click();  

1.2 在父窗口中获取iframe中的元素

// 格式:
$("#iframe的ID").contents().find("#iframe中的控件ID").click();

// 实例:
$("#ifm").contents().find("#btnOk").click();

参考:https://www.runoob.com/manual/jquery/contents.html

1.3 iframe 父窗口和子窗口相互的调用方法集锦

HTML语法:<iframe name="myFrame" src="child.html"></iframe>

父窗口调用子窗口:myFrame.window.functionName();

子窗品调用父窗口:parent.functionName();

2.jQuery给iframe里的元素添加事件

$("#iframeId").on("load", function(event){ // 判断 iframe是否加载完成  这一步很重要
  $("#divId",this.contentDocument).click(function(){ //添加点击事件
    alert("就是这样");
  });
});

 


 

传统的获取iframe内容的一些 参考代码:

// 已请求完成
let handleResult = function() {
	let ret = '';
	let err = '内部错误,无法显示此内容';
	ajax_show_loading(waitId, 'none', null);

	if (waitId === 'ajaxShowId') {
		dialog_object().close(loadingIndex);
	}

	try {
		ret = base_get_obj(ajaxFrameId).contentWindow.document.XMLDocument.text;
	} catch (e) {
		try {
			ret = base_get_obj(ajaxFrameId).contentWindow.document.documentElement.firstChild.wholeText;
		} catch (e) {
			try {
				ret = base_get_obj(ajaxFrameId).contentWindow.document.documentElement.firstChild.nodeValue;
			} catch (e) {
				ret = err;
			}
		}
	}
	console.log(ret);
	if (typeof ret == 'undefined') {
		ret = err;
	}
}