2012-06-16 79 views
4

父級和iframe在同一個域中。 iframe具有動態高度並且沒有自己的滾動條 - 滾動條位於父窗口上。滾動父窗口以在iframe中錨定

儘管進行了大量搜索,但我無法找到一種將父窗口滾動到加載時的iframe中的錨點的方式。即iframe網址是abc.com/iframe.html#link,但只加載iframe的頂部是可見的 - 父框架不滾動到#link。有沒有人知道這種方式可以用JavaScript(在父母或iframe或兩者)或其他方式?

感謝

回答

2

這是可以做到,雖然javascript.Suppose你點擊一個鏈接,而不是錨鏈接它,試試這個:

document.getElementById('id_of_link').scrollIntoView(true); 

編輯:約window.parent.scroll什麼(X ,y),其中x,y是通過這種方法檢索到的元件的位置:

function getOffset(el) { 
    var _x = 0; 
    var _y = 0; 
    while(el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) { 
     _x += el.offsetLeft - el.scrollLeft; 
     _y += el.offsetTop - el.scrollTop; 
     el = el.offsetParent; 
    } 
    return { top: _y, left: _x }; 
} 
var x = getOffset(document.getElementById('yourElId')).left; 

來自:Retrieve the position (X,Y) of an HTML element

+0

謝謝,但我已經嘗試這樣做,因爲這是一個需要不滾動的iframe父不會在iframe工作,它不會滾動,從該id_of_link父母(甚至假設我可以從父母的iframe的哈希值中找到id_of_link)。 –

+0

編輯後的解決方案有時在Chrome中運行,而不是在Firefox中運行。由於原始頁面只與IE9中的鏈接一起工作(不需要JavaScript),所以我決定保持獨立,但感謝您的幫助 - 非常感謝。 –

0

你試過用urlencoding#嗎?

嘗試:%23