Ссылки на той же странице работают, ссылаясь на другой элемент с id="sec-id"
на той же странице, используя, например,
<a href="#sec-id"></a>
.Ссылка, подобная этой, является относительной.
Однако, если я использую тот же самый синтаксис в iframe на моей площадке LaTeX.js, он не просто прокрутит до элемента назначения, но и (повторно) загрузит всю площадкустраница внутри ifame.(Обратите внимание, что я устанавливаю содержимое iframe программно с помощью iframe.srcdoc = html
)
Пример: LaTeX.js детская площадка , в самом конце первого раздела нажмите на ссылку в разделе «См.также раздел 11 ".в iframe справа.
В чем может быть причина?
ОБНОВЛЕНИЕ : теперь я понимаю источник проблемы: браузер использует базовый URL документасделать все относительные URL абсолютными (см. <base>
).Проблема начинается с iframe, содержимое которого установлено с srcdoc
: не указан уникальный базовый URL, и в этом случае используется базовый URL родительского фрейма / документа - в моем случае игровая площадка (см. Стандарт HTML ).
Таким образом, возникает вопрос: есть ли способ ссылки на iframe srcdoc
в базовом URL?или можно сделать так, чтобы браузер не подставлял базу?или создать базовый URL, который не меняет относительные #sec-id
URL?