2010-03-18 54 views
2

使用Safari,您可以通過設置style =「overflow:hidden;」來禁用大多數iframe滾動功能在iframe上。但是,如果您單擊iframe並移動鼠標,內容無論如何都會滾動。Safari如何防止滾動溢出:隱藏iframe?

例子:

<html> 
    <body> 
    <iframe style="width: 100%; height:100px; overflow: hidden;" scrolling="no" src="scrollcontent.html"> 
    </iframe> 
    </body> 
</html> 

scrollcontent.html:

<html scroll="no" style="overflow:hidden;"> 
    <body scroll="no" style="overflow:hidden;"> 
    <div style="background-color: green; height:100px;">A</div> 
    <div style="background-color: red; height:100px;">B</div> 
    </body> 
</html> 

在這個例子中,在iframe應僅顯示一個綠色的區域,它應該是不可能揭示紅色區域。這大部分是正確的:沒有滾動條,鼠標滾輪不做任何事情,也沒有箭頭鍵。

但點擊並拖動仍然滾動視圖。選擇文本時,這一點尤爲明顯。

有沒有人知道任何訣竅阻止Safari做到這一點?

+1

拉我的頭髮,使這個走開! – jlarson 2011-05-10 17:03:21

回答

2

您可以添加一個window.onscroll方法,該方法執行window.scrollTo(0, 0);。它不漂亮,但它應該工作。

+0

它確實使視圖像瘋了似的跳,但它似乎工作,主要是。有了一點持久性,我可以讓幀停止在紅色 - 可能是滾動動作和事件處理程序之間的某種競爭條件。 – 2010-03-18 14:05:30

2

在最壞的情況下我會嘗試利用jQuery加載負荷的內容() ,然後你的一切包裝用<div style"overflow:hidden">your content...</div>

+0

這實際上是我最終做的。我把所有的內容放在一個div中,並防止它滾動。 – 2010-06-15 17:54:29