Попытка различных комбинаций установки местоположения фрейма или хэша все же, к сожалению, привела к прокрутке родительского элемента.
Итак, это то, что я в итоге сделал, так как содержимое iframe находилось в одном домене, поэтому не быломежсайтовая проблема при навигации по фрейму DOM.
Я изменил ссылки в родительском элементе, поэтому вместо выполнения target="myiframe"
я добавил функцию «o'clock» для прокрутки в обход реализации по умолчанию (что, кажется, приводит кродительский элемент для перехода к iframe).
<a onclick="linkFunction(this, event);return false;"...
Функция ссылки выглядит следующим образом:
/// for scrolling iframe without jumping parent page
function linkFunction(atag, event) {
event.preventDefault();
var iframe = document.getElementById('myiframe');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var name = atag.href.split('#')[1]; // get the hash
var anchor = innerDoc.getElementsByName(name)[0]; // find the corresponding anchor tag
// get position of the anchor relative to the current scroll position
var offset = anchor.getBoundingClientRect().top
// jump scroll the iframe content to the anchor
iframe.contentWindow.scrollBy(0, offset)
}
Нет JQuery и по-прежнему работает должным образом, если отключен JavaScript (просто возвращается к родительскому элементу по умолчанию)прыжки).
Надеюсь, это поможет кому-то еще.