我創建了一個與相當流行的音樂零售商一起使用的工具。優雅地關閉iframe框架(工具欄)
該工具提供了一個增強的搜索功能(透明的last.fm結果,沒有廣告,沒有跛腳,沒有令人毛骨悚然),我發現最有用和不顯眼的方式來顯示搜索是作爲一個工具欄使用非常maligned iframe中。這允許用戶在不竊取用戶焦點的情況下加載搜索。
不是特別喜歡iframe的人我認爲添加「關閉此框架」(ala Google圖片搜索)鏈接可以讓用戶快速輕鬆地重新獲得對其瀏覽器的控制,這將是微不足道的。
但不像谷歌,我不知道內容在iframe中的位置是什麼(僅在它通過src開始的地方)。
所以現在我發現自己處於XSS世界和所有與安全有關的問題。
使用Javascript我已經添加了「後退」和「前進」按鈕,並且父對象中的鏈接調用了歷史對象(當用戶執行搜索時,結果加載到iframe中,所以後退按鈕允許他們去在完成使用/細讀搜索結果後返回到主站點)。
有什麼方法可以調用iframe中的當前位置並將頁面(現在無框)重新加載到該位置?
我檢查了PHP $ GLOBAL/$ _ SERVER變量,看看我可能會幸運。我明白有安全問題,但我不明白這個特定的函數與history.back()的不同之處在於,瀏覽器在沒有「通知」父框架的情況下自己調用它。
我知道我可以從iframe中檢索src位置,但當然這假設用戶不會瀏覽超出此頁面,如果他們這樣做,他們不介意丟失他們的當前位置並被重定向回頁面最初由框架調用(...啊...)。
它幾乎看起來像框架被設計來竊取窗戶,沒有辦法優雅地'爆發'並保持用戶會話的完整性。
難怪人們討厭他們。 :)
我不知道如果我理解正確的話,你是在主文檔的控制,您顯示在外部文件iframe,並且您希望主文檔在iframe中加載任何內容作爲新的主文檔?並且您沒有與iframe中的文檔進行任何合作? – Jim 2008-09-27 02:10:22