2013-10-21 46 views
0

它可能看起來偶然的問題,但我花了很長時間。得到Iframe水平滾動條位置javascript

我加載在IFRAME &本地HTML文件,我能使用

overflow-x:scroll;overflow-y:hidden; 

所以,我想知道當前的水平滾動條的位置

var Iframe = document.getElementById("IframeId"); 
var pos = Iframe.scrollLeft; 
       & 
vat pos = Iframe.document.body.scrollLeft; 

兩者都沒有爲我工作水平導航。

+0

專業提示:如果您擁有使用Chrome開發工具的奢華,那麼找到像這樣的東西要容易得多。當然,如果你堅持IE瀏覽器,那麼沒有這樣的運氣。 – Jondlm

回答

3

body位於iframe窗口內,而不在iframe元素內。你可以參考正確的元素是這樣的:使用frames收集

var Iframe = document.getElementById("IframeId").contentWindow; 
var pos = Iframe.document.body.scrollLeft; 

或者更多的跨瀏覽器的方式:

var Iframe = window.frames['IframeId']; 
var pos = Iframe.document.body.scrollLeft; 

編輯

在IE10中scrollLeft屬性需要被讀取來自document.documentElement,因此:

var pos = Iframe.document.documentElement.scrollLeft; 
+0

'Iframe.contentDocument.body.scrollLeft'似乎也適用。 – Jondlm

+0

@Jondlm是的,但'contentDocument'和'contentWindow'不適用於舊瀏覽器。 – Teemu

+0

很高興知道!謝謝(你的)信息。 – Jondlm

-1

您可以調整iframe的滾動條。

iframe{ width: XXpx; height: XXpx; overflow-x: auto; overflow-y: hidden; } 

試試這個。

+0

我不想調整滾動條。我想獲得Iframe滾動條的位置。你能幫我解決這個問題嗎? – Kumar