2010-07-08 80 views
8

如何防止按下箭頭鍵時滾動的html頁面,如果其內部的iframe集中?阻止使用箭頭鍵滾動

IM鉻

iframe的集中流汗這個錯誤,我知道它的重點。父母無論如何滾動。

+0

你有控制權iframe中的內容? – 2010-07-08 21:12:29

+0

是的,它在同一個域名上。 – 2010-07-08 23:59:39

+0

IE 6+,FF3 +,Chrome:它們都是你默認說的。我點擊iframe並按下箭頭。 iframe滾動頁面不會。你想要什麼? – galambalazs 2010-07-14 01:40:37

回答

12

的iframe文檔中下面的代碼將防止它滾動:

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

這將阻止iframe滾動,但我想阻止頁面滾動。 – 2010-07-08 21:31:31

+0

但是,如果iframe被集中,那麼箭頭鍵如何影響父文檔? – 2010-07-15 08:37:27

+0

這是因爲他關注它的方式不適用。我的回答給他提供瞭解決這個問題的代碼。 – 2010-07-17 14:17:53

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,鐵5.0.380,Opera 10.60中,IE 6和IE 8測試它

+0

你明白這個問題涉及到滾動,對吧?不關注? – 2010-07-15 02:10:32

+0

問題是你的焦點不工作,對嗎?即當iframe集中並且您使用箭頭鍵時,它會滾動父級。上面的代碼設置焦點並且父代不滾動。 – 2010-07-15 02:39:43

+0

不,它側重於框架 – 2010-07-15 05:36:12