Frame之间的通信
一、Frame之间的通信
在跨Frame之间的通信,首先要清楚一点,不同的Frame 指的是同一个域下的不同Frame 。这也是出于一种安全考虑。在跨Frame 脚本中有4个要点:
● window 或者 self 指向当前的 frame 中的页面;
● parent 则指向包含当前页的 frame 中的页面;
● top 指向最顶层的 frame 所包含的页面,如果继承关系中只有一个 frameset ,则 parsent 和 top 的指向一样;
● frames 集合是一个数组(和 forms 差不多),所以可以通过序号和名字访问,最好是名字,因为要是添加或者是删除了 frame ,序号就发生了变化。个人建议最好使用 top.frames["name"];
举个例子吧!
<!--主页面-->
<frame src = "a.html" name = "a">
<frame src = "b.html" name = "b">
<script language = "javascript" type = "text/javascript">
function getVals () {.......}
</scirpt>
<!--a.html-->
<div id = first>第一个Frame</div>
<!--b.html-->
<div>第二个页面</div>
<script language = "javascript" type = "text/javascript">
function checking() {.......}
</scirpt>
如果现在焦点在第二个页面,执行checking 函数,要取得 第一个页面 ID = frist 的元素节点。访问的代码如下:
var aFrame = top.frames["a"];
// 也可以用 var aFrame = top.frames[0];
// var aFrame = parsent.frames["a"];
// var aFrame = parsent.frames[0]; 个人提倡用第一种访问方法;
var aAnchor = aFrame.document.getElementById("first");
如果要调用主页面的 getVals 函数, top.getVals(); 即可
如果 第一个页面,要调用第二个页面的 checking() ;函数
var bFrame = top.frames["b"];
bFrame.checking();
一、Frame之间的通信
在跨Frame之间的通信,首先要清楚一点,不同的Frame 指的是同一个域下的不同Frame 。这也是出于一种安全考虑。在跨Frame 脚本中有4个要点:
● window 或者 self 指向当前的 frame 中的页面;
● parent 则指向包含当前页的 frame 中的页面;
● top 指向最顶层的 frame 所包含的页面,如果继承关系中只有一个 frameset ,则 parsent 和 top 的指向一样;
● frames 集合是一个数组(和 forms 差不多),所以可以通过序号和名字访问,最好是名字,因为要是添加或者是删除了 frame ,序号就发生了变化。个人建议最好使用 top.frames["name"];
举个例子吧!
<!--主页面-->
<frame src = "a.html" name = "a">
<frame src = "b.html" name = "b">
<script language = "javascript" type = "text/javascript">
function getVals () {.......}
</scirpt>
<!--a.html-->
<div id = first>第一个Frame</div>
<!--b.html-->
<div>第二个页面</div>
<script language = "javascript" type = "text/javascript">
function checking() {.......}
</scirpt>
如果现在焦点在第二个页面,执行checking 函数,要取得 第一个页面 ID = frist 的元素节点。访问的代码如下:
var aFrame = top.frames["a"];
// 也可以用 var aFrame = top.frames[0];
// var aFrame = parsent.frames["a"];
// var aFrame = parsent.frames[0]; 个人提倡用第一种访问方法;
var aAnchor = aFrame.document.getElementById("first");
如果要调用主页面的 getVals 函数, top.getVals(); 即可
如果 第一个页面,要调用第二个页面的 checking() ;函数
var bFrame = top.frames["b"];
bFrame.checking();