2013-07-26 31 views
4

錨我是新來的...希望我做的一切權利;-D滾動父框架中的iframe

我發現有類似問題的幾個主題,但他們並不像他們想達到我想要達到的目標。

我有一個長的內容區域的網站,該網站有滾動條。該內容區域內的某處是iframe。此iframe實現了全高度的站點(支持板),並在內容height更改時調整iframe - 因此iframe沒有滾動條。現在我想要的是:當我用http://www.mywebsite.com/#new打開網站時,我希望頁面向下滾動到iframe,但不僅僅是iframe的起始位置,還有錨位置這個iframe

所以iframe本身不需要滾動(它總是100%的高度),但是父框架應該滾動到位置 - 錨定位置的位置 - iframe

我真的不知道如何解決這個問題。將定位點添加到iframes網址並沒有幫助,只是將定位點添加到網站網址中也不起作用。我相信我必須用JavaScript或類似的東西來實現一些東西,但不知道如何!我可以修改兩者的代碼 - iframe和父站點內的網站!

//編輯
哦,我忘了......我不能跟一個onClick-行動或鏈接屬性(也就是接縫是在一個相關帖子的解決方案),因爲它不是在裏面跳做同一頁。該頁面正在重新加載,並應跳轉到錨:-D所以它必須工作,當我自己輸入的URL ...
希望你明白我的需要!

// EDIT2 可能的框架:

  • 主頁是一個WordPress的博客,所以JQuery的是可能的!
  • iframe頁面是一個簡單的機器論壇(SMF) - 我覺得只有原生JS在這裏!
+0

你想普通的JavaScript?你有jQuery,Mootools或其他框架? – Sergio

+0

是啊......對不起!忘了添加這些信息,現在把它添加到最初的帖子! – LordZed

回答

2

這是一個答案,會讓你「以正確的方式」。

假設您的iFrame始終位於主頁內部的相同位置,您需要將主頁滾動至此處:iframe y座標+ iFrame內部的錨點座標。

所以我會打電話給你的錨:<a name="anchor1">Here</a>和你的iFrame:<iframe id ="myiFrame" ...

爲了得到在頁面中的iframe的位置,你可以使用$("#myiFrame").position().top和iFrame中的錨位置$("#myiFrame").contents().find('a[name=anchor]').position().top

所以你的腳本moght樣子:

var y = $("#myiFrame").position().top + $("#myiFrame").contents().find('a[name=anchor]').position().top; 
$(window).scrollTop(y) 
+0

這幫了我,謝謝!需要使用偏移量()而不是位置(),但其餘的工作finde!謝謝! :)我現在這樣做:'jQuery(window).load(function(){ \t id = window.location.hash.slice(1).substr(window.location.hash.slice(1) .indexOf('#')+ 1); \t if(jQuery(「#iframeforum」)。contents()。find('a [id ='+ id +']')。{ \t \t var y jQuery(「#iframeforum」)。offset()。top + jQuery(「#iframeforum」)。contents()。find('a [id ='+ id +']')。offset()。top - jQuery '#top返回')的高度(); \t \t的jQuery(窗口).scrollTop(Y) \t} });' – LordZed

+0

從我可以告訴,這如果iframe是不同的域上是不可能的。有人請糾正我,如果我錯了。 – lbstr