2007年3月28日 星期三

frame呼叫另一個子frame的function

最近在工作上需要研究一個功能:要怎麼跨frame運用Javascript動態在另一個子frame產生div物件,並且要使動態產生的DIV物件,能再呼叫原frame的function,爬了一些文,終於找到解決方法,它原理大致上是這樣:
          alert_cross_frame.htm           parent
           /          \
            /           \
          /            \
         left            right          children
(alert_cross_frame_left.htm) (alert_cross_frame_right.htm)

因此我在那個要動態產生div的物件上加上了一個 parent.left.function_name(),那為什麼是加left?原因是在 alert_cross_frame.htm 中開了兩個 frame,而且將它們分別命名為 left 和 right。所以用 left 代表第一個 frame (alert_cross_frame_left.htm),因此也能呼叫它的function來用,因此這個問題也解決囉!真高興~呵


NJD自言自語:為什麼設計師要學JavaScript?只能說 …它有相關到,當你想用最簡單的方法來呈現畫面時,會需要用到它的,比如:一個連結你想讓它在滑鼠移過去時換一張圖,讓它有如flash效果又不想用flash時,網路上搜尋一下不就都說要靠它來解決嗎?所以設計師如果能具備CSS和JavaScript的技術是最好的囉!(...自我摧眠中~哈)

(補)>>基於安全理由,frame之間的溝通只有「相同網域」中的文件才能進行frame之間的溝通,處理從不同於指令碼的網域載入的文件是不可能的。例如,一個惡意網站的擁有人要將你經常造訪的網站載入frame並偷走你所輸入的個人資料,是不可能做到的。

2 則留言:

Sandy 提到...

看了NJD的自言自語覺得非常有同感
Marcom牽涉的層面非常的廣~
我們無時無刻都在做行銷(用任何方法或形式..)
會感受到自己需要懂得東西非常多
更覺時間永遠不夠用阿~
要像大海棉一樣不斷吸收才行!

一起加油囉~ Fighting !!


Sandy

戰鬥大貓 提到...

收下,好文啊!

 
TEMPLATE HACKS AND TWEAKS BY [ METAMUSE ] BLACKCAT 1.1