window.frames[]
功能:frames[]是窗口中所有命名的框架組成的數組。這個數組的每個元素都是一個Window對象,對應於窗口中的一個框架。
語法:window.frames
瀏覽器窗口中每個定義的框架都是frames[]數組中的元素。
假設ifr 是一個以存在的 iframe 的 ID 和 NAME 值: 獲取iframe的方法有:
document.getElementById(“ifr”);
window.frames[“ifr”];
要想使用iframe內的函數,變量就必須通過第二種方法.因為它取的是一個完整的DOM模型第一種方法只是取出了一個OBJECT而已.
如果只想改變iframe的 src 或者 border , scrolling 等 attributes(與property不是一個概念,property是不能寫在標簽內的,比如:scrollHeight,innerHTML等),就需要用到第一種方法.
如果想取得iframe的頁面(不是iframe本身),就需要使用第二種方法,因為它取得的是一個完整的DOM模型,比如想得到iframe的document.body的內容,就只能用第二種方法.
還要注意的是,如果在iframe的頁面未完全裝入的時候,調用iframe的DOM模型,會發生很嚴重的錯誤,所以,你要准備一個容錯模式.
frames.length屬性存放了frames[]數組的長度。
注:frames[]數組的元素內部還可以有框架,所以frames[i]可以有自己的frames[]數組。
實例1檢測當前頁面中框架個數。
代碼:
<script type="text/javascript">
document.write( "框架個數:"+window.frames.length );
</script>
這段代碼的效果為:框架個數:1
注:本頁面中包含有一個<iframe>定義的框架。
-----------------------------------------------------------------------------
例如樹形結構圖:
function init() {
var setting = {
data : {key : {title : "t"},simpleData : {enable : true}},
callback : {onClick : onTreeClick}
};
$.ajax({type : 'get',
url : "<s:property value='basePath'/>view/power/department!departjson"+ "?a=" + new Date(),
success : function(data) {
var zTreeObj=$.fn.zTree.init($("#treeDemo"), setting, eval("("+ data.valueOf() + ")"));
}
});
//顯示收藏夾
showMemUsers();
//顯示已選用戶
showSelected();
}
function onTreeClick(event, treeId, treeNode, clickFlag) {
var level=treeNode.level;
$(window.frames["userFrame"].document).find("#chineseName").val("");
if(level==1){
$(window.frames["userFrame"].document).find("#unitId").val(treeNode.id);
$(window.frames["userFrame"].document).find("#departmentId").val("");
}else if(level==2){
$(window.frames["userFrame"].document).find("#departmentId").val(treeNode.id);
$(window.frames["userFrame"].document).find("#unitId").val("");
}
$(window.frames["userFrame"].document).find("#tagForm").submit();
}