iframe中href="javascript:alert('MOG')"有問題 - 原來是因為base target

iframe中href="javascript:alert('MOG')"有問題 - 原來是因為base target

因為asp.net不容許一個頁面有多個form,
所以需要將原本搜尋的功能改用javascript串字串換location的方式來寫.

原本,單一頁上都沒有問題,
但是後來因為需要讓其他網站使用,所以其他網站就使用iframe來包那一頁,
但是,一包進iframe卻發生function沒有被定義的問題...

追了半天才發現,原來是因為<base target="_parent">的問題...

因為搜尋的那頁除了搜尋的功能外,還有其他的link,為了讓他可以點選link後是替換掉整頁,
所以就用最簡單的方法,在header加個<base target="_parent">
而因為搜尋的按鈕是個圖片,所以就用連結的方式包起來呼叫function,
像是:<a href="javascript:search();">圖片</a>.

所以只要將原本的
<a href="javascript:search();">圖片</a>
改成
<a href="javascript:search();" target="_self">圖片</a>
就可以了.

玩玩下面的範例,
你會發現,在iframe中,要呼叫上一層或是其他frame的javascript,
只要用href的方式,加個target就可以了!!

範例 : http://ajunlee.googlepages.com/iframe_js.htm