2012-06-02 48 views
3

是否可以加載跨域子iframe並將其滾動到某個部分?例如,我想引用一個關於Stack Overflow的問題,並使用JavaScript將它滾動到問題所在頁面的特定部分,也可能覆蓋一個突出顯示或其他東西。滾動跨域子iframe?

我的破解是加載iframe的高度非常高,然後通過移動位置進行滾動。

這很糟糕,有沒有更好的方法?

+1

如果您想克服跨域保護(阻止您讀取或寫入內容),最簡單的方法是從服務器端獲取頁面並將其包含在內。 –

+2

會話標籤不夠嗎? –

+0

@dystroy,這是要走的路,除非SO政策允許刮。 – Jashwant

回答

0

如果iframe是從不同的原始域加載的,那麼您可以做的事情很少與它進行交互。瀏覽器強制執行跨源安全性,不會讓您直接操作iframe內容。如果您對正在加載到iframe中的內容有一些控制權,則可以使用postMessage函數。

postMessage API好像是fairly well supported。你可以看看specificationdemo

blog post似乎有一個很好的問題的方法概述。

你剛剛設置iframe的高度是一個有趣的想法,但你將不得不知道它需要多長時間,所以只有當你知道你想要顯示的內容時纔會工作。

+1

關於SO頁面的一些控制? –