2010-07-08 3 views
8

Как я могу предотвратить прокрутку html-страницы при нажатии клавиш со стрелками, если сфокусирован iframe внутри нее?предотвращает прокрутку с помощью клавиш со стрелками

им gettting этой ошибки в хроме

Функции Iframe сфокусирован, я знаю его сосредоточенный. родительские свитки в любом случае.

+0

У вас есть контроль над содержимое в iframe? –

+0

да, и его в том же домене –

+0

IE 6+, FF3 +, Chrome: все они делают то, что вы только что сказали по умолчанию. Я нажимаю на iframe и нажимаю стрелку вниз. Прокрутка страницы iframe не выполняется. Что ты хочешь? – galambalazs

ответ

12

Следующий код внутри IFrame документа позволит предотвратить его от прокрутки:

document.onkeydown = function(evt) { 
    evt = evt || window.event; 
    var keyCode = evt.keyCode; 
    if (keyCode >= 37 && keyCode <= 40) { 
     return false; 
    } 
}; 
+0

, который предотвратит прокрутку iframe, но я хочу, чтобы страница не прокручивалась. –

+0

Но если сфокусирован iframe, как клавиши со стрелками могут влиять на родительский документ? –

+0

Это потому, что способ, которым он фокусируется, не работает должным образом. Мой ответ предоставит ему код, чтобы исправить эту проблему. –

0

Это работает, кроме IE:

window.top.document.onkeydown = function(evt) { 
    evt = evt || window.event; 
    var keyCode = evt.keyCode; 
    if (keyCode >= 37 && keyCode <= 40) { 
     return false; 
    } 
}; 
0

Этот код делает трюк:

JavaScript

<script type="text/javascript"> 
    function focusOnIframe(iFrameID) { 
    if (frames[iFrameID]!=undefined) 
     frames[iFrameID].focus(); // Works in all browser, except Firefox 
    else 
     document.getElementById(iFrameID).focus(); // Works in Firefox 
    } 
</script> 

HTML (пример)

<input type="button" id="setfocus" value="Set focus" onclick="focusOnIframe('myiframe')" /> 

<p>Bla<br />Bla<br />Bla<br />Bla<br />Bla<br /></p> <!-- Just some filler --> 

<iframe id="myiframe" src="yourpage.html"></iframe> 

<p>Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br />Bla<br /></p> <!-- Just some filler --> 

Я проверил это в Firefox 3.6.6, Iron 5.0.380, Opera 10.60, IE 6 и IE 8.

+0

вы понимаете, что вопрос включает прокрутку, не так ли? не фокусируясь? –

+0

Проблема в том, что ваш фокус не работает, правильно? То есть когда iframe сфокусирован и вы используете клавиши со стрелками, он прокручивает родительский элемент. Вышеупомянутый код устанавливает фокус, и родительский элемент не прокручивается. –

+0

нет, он фокусируется на кадре –

Смежные вопросы