目前有兩種方式,但使用的時機各不相同。
第一種:document.getElementById(“ifr”);
第二種:window.frames[“ifr”];
如果我們想要改變的,只是iframe的src,border,scrolling時,就要使用第一種方式。
如果我們想要改變的,是整個iframe裡的DOM階層,也就是要存取iframe裡的某一樣東西時(如txtbox的值),就要使用第二種。
然而,當你所存取的 iframe 頁面尚未完全下載完成時就要呼叫使用它,是會出錯的。所以,我們自己要去處理這個錯誤。最簡單的方法,就是先去檢查我們要呼叫的物件是否已經存在,如果不存在,就等他一下,然後再繼續做我們要做的事。
我用了 setTimeout( ) 的方式來處理。
function CallIFrame()
{
var ob=window.frames["ifDraft"];
var iobject=ob.document.getElementById("txtTest");
if(iobject)
{
iobject.value="三趨一";
}
else
{
setTimeout("CallIFrame()",100);
}
}
沒有留言:
張貼留言