2013-11-02 57 views
1

讓我開始說我有沒有控制iframe。當iFrame焦點時,不會觸發Keyup事件

像「絆腳石」一樣,我讓用戶使用右箭頭鍵導航到下一頁。

問題是,如果用戶點擊了iframe窗口內的任何位置,則包含文檔上的關鍵事件將被忽略。

<script type="text/javascript"> 
$(document).ready(function() { 
    $(document).on('keyup', null, function(event) { 
     var stumblenext = $('#stumblenext'); 
     if (event.keyCode == 39) { top.location=stumblenext.attr('href'); } 
     if (event.keyCode == 37) { history.back(); } 
    }); 
}); 
</script> 

回答

0

嘗試在iframe上綁定keyup

$(document, $("#idOfiFrame").contents()).on('keyup', null, function(event) { 
     var stumblenext = $('#stumblenext'); 
     if (event.keyCode == 39) { top.location=stumblenext.attr('href'); } 
     if (event.keyCode == 37) { history.back(); } 
    }); 
1

當您檢測到焦點位於iframe上時,將焦點更改爲頁面上的某個其他元素。

腳本:

function changeFocus() { 
    if (document.activeElement == document.getElementsByTagName("iframe")[0]) { 
     document.getElementById("YOUR_ID").focus(); 
    } 
} 

window.setInterval(changeFocus, 1000); // Set time accordingly 
+0

這是什麼使得 「意義」,但再怎麼不StumbleUpon公司做呢? –

+0

技術上同樣的問題「未捕獲的類型錯誤:無法調用空值的焦點' –

+0

您應該在上面的代碼中使用'YOUR ID'的適當編號。確保'document.getElementById(YOUR-ID)'不爲null,即存在id = YOUR-ID的元素。 –

相關問題