JS备忘--子父页面获取元素属性、显示时间,iframe之间互相调用函数

时间:2023-03-09 04:59:09
JS备忘--子父页面获取元素属性、显示时间,iframe之间互相调用函数
//页面加载完成后执行
$(function () { getHW();});
//当用户改变浏览器大小改变时触发
$(window).resize(function () { setHW(); });
//每500毫秒运行一次
window.setInterval("getH()", 500); //获取页面的高度,并传给父页面的元素
function getSubPageH() {
var parentWorkDiv = $("#workDiv", parent.document);//工作区DIV
var parentLeftDiv = $("#leftDiv", parent.document); //左侧菜单DIV
var parentTopDiv = $("#topDiv", parent.document);//顶部DIV
var parentBotDiv = $("#bottomDiv", parent.document);//底部DIV
var parentMidDiv = $("#middleDiv", parent.document); //中间DIV var thisBody = $("body");//本页面
var parentHeight = $("body", parent.document).height(); //父页面可用高度
var parentWidth = $("body", parent.document).width(); //父页面可用宽度
if ((thisBody.height() < parentHeight) && (parentLeftDiv.height() < parentHeight)) {
parentMidDiv.height(parentHeight - parentTopDiv.height() - parentBotDiv.height());
}
else {
if (thisBody.height() > parentLeftDiv.height()) {
parentMidDiv.height(thisBody.height());
}
else {
parentMidDiv.height(parentLeftDiv.height());
}
}
parentWorkDiv.width(parentWidth - parentLeftDiv.width());//设置宽度 // alert(parentMidDiv.height() + "-" + parentHeight); } //设置页面工作区域的宽度
function setHW() {
var leftDiv = $("#leftDiv");
var workDiv = $("#workDiv");
//获取浏览器的宽度
var htmlWidth = $(document).width();
var w = htmlWidth - leftDiv.width(); workDiv.width(w);
} //显示当前时间
function showTime() {
//获取当前日期
var dateTime = new Date();
var dateStr;
//定义星期
var week = "星期";
var dayWeek = new Array("日", "一", "二", "三", "四", "五", "六");
week += dayWeek[dateTime.getDay() + 1];
//年
dateStr = dateTime.getFullYear() + "年";
//月
if (dateTime.getMonth() < 10) {
dateStr += "0";
}
dateStr += (dateTime.getMonth() + 1) + "月";
//日
if (dateTime.getDate() < 10) {
dateStr += "0";
}
dateStr += dateTime.getDate() + "日&nbsp;&nbsp;" + week + "&nbsp;&nbsp;";
//时
if (dateTime.getHours() < 10) {
dateStr += "0";
}
dateStr += dateTime.getHours() + ":";
//分
if (dateTime.getMinutes() < 10) {
dateStr += "0";
}
dateStr += dateTime.getMinutes() + ":";
//秒
if (dateTime.getSeconds() < 10) {
dateStr += "0";
}
dateStr += dateTime.getSeconds(); document.getElementById("lblTime").innerHTML = dateStr;
}

第一、在iframe中查找父页面元素的方法:
$('#id', window.parent.document)

第二、在父页面中获取iframe中的元素方法:
$(this).contents().find("#suggestBox")

第三、在iframe中调用父页面中定义的方法和变量:
parent.method
parent.value

第四、父页面调用iframe内的JS的方法,无须给iframe加id,只需用Jq选中iframe就行了
$("#id").find("iframe")[0].contentWindow.func()

self.opener

opener代表打开本窗口的窗口

同一个父页面中,不同iframe之间互相调用函数

var frames = window.parent.window.document.getElementById("main");//根据ID获取目标iframe
frames.contentWindow.myfun();//调用函数myfun()