2016-04-01 4 views
1

Предположим, у меня есть два html-файла footer.html и main.html. Сноска содержит ссылку на верхней части страницы следующим образом:Html anchor в другом html

<!-- footer.html --> 

<!doctype html> 
<html lang="en"> 
<head></head> 
<body> 
    <footer> 
    <small><a href="_parent#header">To top</a></small> 
    </footer> 
</body> 
</html> 

Файл main.html встраивает колонтитула с помощью <object> тега (смотри примечание 1), как показано ниже. Может быть несколько файлов, похожих на main.html. Из-за этого <a href="page#header"> не может быть использован.

<!-- main.html --> 

<!doctype html> 
<html lang="en"> 
<head></head> 
<body> 
    <div id="header">...</div> 
    <div id="content"> Long content ... </div> 
    <object id="footer" type="text/html" data="footer.html"></object> 
</body> 
</html> 

Вопрос: Можно сослаться на якорь с колонтитула основной без использования JavaScript, PHP и т.д.?

Примечание 1: <object> тег может быть использован для встраивания другой HTML, хотя и без отношения:

Вы также можете использовать <object> тег, чтобы вставить другую веб-страницу в ваш HTML-документ. from http://www.w3schools.com/tags/tag_object.asp

То же самое можно сделать с помощью или <embed> вместо <object>, но проблема остается.

+1

Если вы можете использовать PHP, вам не нужен 'object', просто' include ('footer.php') 'с частичным кодом, который подходит для нижнего колонтитула – Justinas

+0

Я знаю, что могу сделать это с помощью PHP или javascript, но можно ли использовать чистый html? – NeoSer

+0

Единственный другой способ - использовать серверную часть (SSI), но это устарело и редко разрешено на веб-сервере. Используя простой html, вы не можете разделить свой контент следующим образом. –

ответ

1

Можно ли ссылаться на якорь с нижнего колонтитула на главный, не используя javascript, php и т. Д.?

Нет, это не так.

Если вы используете относительный URL-адрес, это будет относиться к документу, в котором отображается ссылка (например, нижний колонтитул).

Если вы используете абсолютный URL-адрес, то вам нужно указать, какой документ вы хотите связать с вершиной (и поскольку несколько документов будут вставлять нижний колонтитул, вы не сможете этого сделать).

Вы исключили создание URL-адреса программно с помощью JavaScript.

0

Спасибо всем за комментарии и ответы. Действительно, этот подход, похоже, не работает из-за отсутствия связи между html-файлами. Другими словами, footer.html не может ссылаться на внутренность main.html. Вместо этого я изменил структуру, таким образом, что основной включает в себя нижний колонтитулы непосредственно и содержание вкладывается с помощью следующим образом:

<!-- main.html --> 

<!doctype html> 
<html lang="en"> 
<head></head> 
<body> 
    <div id="header">...</div> 
    <iframe id="content" name="contentframe" src="content.html"></iframe> 
    <footer id="footer"> 
    <small><a href="#" target="_self">To top</a></small> 
    </footer> 
</body> 
</html> 

Это решает эту проблему и работает без JS, PHP и т.п. независимо друг от страница загружена в . То есть, он просто перескакивает вверх, сохраняя содержимое загруженной страницы. В конце концов, есть одна основная и несколько длинных страниц контента, которые загружаются в эту основную. Протестировано с помощью FF и IE.

Смежные вопросы