1. 程式人生 > >利用iframe嵌入頁面,實現父子頁面互動

利用iframe嵌入頁面,實現父子頁面互動

父頁面程式碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<title>父頁面</title>
<script  type="text/javascript">
var projectVar = 'nihai';
$(function(){
	$("#submit").click(function(){
		//先獲取子頁面的物件
		var contIframe = document.getElementById("contIframe").contentWindow;  
		//獲取子頁面的js變數或者物件
		var testId = contIframe.testId;
		//修改子頁面變數
		contIframe.testId = “XXX”;
		//獲取子頁面html中的元素
		var sonName = contIframe.$("sonName").val();
		//修改子頁面的元素值
		contIframe.$("sonName").val(“xiaowang”);
		//呼叫子頁面的方法
		contIframe.sonMethod();
		//以下程式碼自定義
	});
	$("#close").click(function(){
		var index=parent.layer.getFrameIndex(window.name);
		parent.layer.close(index);
	});
})
//父頁頁面方法
function parentMethod(){
	alert(“這是父頁面”);
}
</script>
</head>
<body>
<div class="submenu">
<input type="hidden" name="parentName" id="parentName" value="老王">
	<div style="width: 98%;height:230px;margin:10px auto;border: 1px solid #cccccc;" id='iframeCont' class='iframeCont'>
		<div align="center" style="height: 100%;">
		   <iframe style="overflow:auto;" width='100%' height='100%' id="contIframe" src="url" frameborder="none" scrolling="auto" ></iframe>
		</div>	    
	</div>
	<div class="submit_group">
     <a href="javascript:;" class="submit" id="submit">確定</a>
	 <a href="javascript:;" class="cancel" id="close">取消</a>
    </div>
 </div>
</body>
</html>

子頁面程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<title>父頁面</title>
<script  type="text/javascript">
var testId = “111”;
$(function(){
	$("#submit").click(function(){
		//獲取父頁面的js變數或者物件
		var parentVar = parent.parentVar;
		//修改父頁面的js變數或物件
		parent.parentVar = “你好”;
		//獲取父頁面的html元素值
		var parentName = parent.$("#parentName").val();
		//修改父頁面的元素值
		parent.$("#parentName").val(“老王”);
		//以下程式碼自定義
	});
	$("#close").click(function(){
		var index=parent.layer.getFrameIndex(window.name);
		parent.layer.close(index);
	});
})
//子頁面方法
function sonMethod(){
	alert(“這是子頁面”);
}
</script>
</head>
<body>
<div class="submenu">
<input type="hidden" name="sonName" id="sonName" value="xiaoli">
	<div class="submit_group">
     <a href="javascript:;" class="submit" id="submit">確定</a>
	 <a href="javascript:;" class="cancel" id="close">取消</a>
    </div>
 </div>
</body>
</html>

總結:

  • 1、如何在父頁面嵌入一個子頁面

(1)先在父頁面寫一個iframe,iframe的src屬性裡面寫所要嵌入頁面的url地址

<iframe style="overflow:auto;" width='100%' height='100%' id="contIframe" src="https://blog.csdn.net/juligang320" frameborder="none" scrolling="auto" ></iframe>

(2)如果沒有初始化src,那麼可以通過js設定:

var div = document.getElementById("contIframe");
div.src = "https://blog.csdn.net/juligang320";
  • 2、如何從父頁面獲取和操作子頁面元素
//先獲取子頁面的物件
var contIframe = document.getElementById("contIframe").contentWindow;  
//獲取子頁面的js變數或者物件
var testId = contIframe.testId;
//修改子頁面變數
contIframe.testId = “XXX”;
//獲取子頁面html中的元素
var sonName = contIframe.$("sonName").val();
//修改子頁面的元素值
contIframe.$("sonName").val(“xiaowang”);
//呼叫子頁面的方法
contIframe.sonMethod();
  • 3、如何從子頁面獲取和操作父頁面元素
//獲取父頁面的js變數或者物件
var parentVar = parent.parentVar;
//修改父頁面的js變數或物件
parent.parentVar = “你好”;
//獲取父頁面的html元素值
var parentName = parent.$("#parentName").val();
//修改父頁面的元素值
parent.$("#parentName").val(“老王”);

說明:這種父子頁面之間的操作,也適合父頁面彈出子頁面式的父子頁面關係