2010-04-09 20 views
4

有沒有什麼方法可以在iframe擁有焦點時在父頁面中偵聽按鍵事件?或者,是否有可能從iframe中撤出焦點?在iframe有焦點的時候聽按鍵嗎?

請注意,iframe不在同一個域中,所以我無法通過javascript修改其內容。

我已經嘗試了以下jquery在父頁面,思考也許間歇模糊會工作,但它似乎並不。

function iframeBlur(){ 
    $("#iframe").blur();   
} 
var blurif = setInterval(iframeBlur, 500); 
+0

我剛剛注意到,將焦點設置爲輸入元素的作品。它真的是最好的解決方案嗎?我將不得不創建一個隱藏的輸入元素,然後測試以查看是否有其他輸入當前正在聚焦(在這種情況下,我不應該重新調整)。 – Matrym 2010-04-09 09:42:16

回答

3

它看起來像我剛纔錯誤的語法。 window.focus()的;在ffx和chrome中工作(在我知道之前,我必須首先解決其他ie錯誤)。

function iframeBlur(){ 
    window.focus(); 
} 
var blurif = setInterval(iframeBlur, 500); 
+0

這不是每隔500毫秒就將焦點設置到窗口嗎? – rahul 2010-04-09 09:48:03

+0

是的,缺點是這可以防止在iframe窗口中輸入任何內容。好處是它允許通過父窗口中的鍵進行快捷方式。這絕對不是理想的,所以我對其他解決方案持開放態度。 – Matrym 2010-04-09 09:49:58

+0

這也不會阻止用戶在他們的機器上使用任何其他程序嗎?如果瀏覽器每隔500毫秒到達前端,整個機器將不適合除了你的頁面之外的任何東西... – 2010-04-09 10:08:14

1

我敢肯定,這是不可能的,iframes是相當廣泛的保護從父母的JavaScript。出於安全原因,這是一件好事。否則,黑客可能會註冊一些像gmai1.com這樣的東西,擁有一個帶有真正gmail.com的大型iframe,然後記錄來自父母的密碼條目。