И вы должны иметь это и работает! Надеюсь, это помогло! :)

умал, что было бы удобно иметь повторно используемый код, особенно для панели навигации, потому что он будет одинаковым на всех моих страницах. Таким образом, мне не нужно будет просматривать каждую страницу и вручную редактировать каждую страницу отдельно, когда произойдет изменение.

Кажется возможным использовать iframes, но я попробовал это, и весь дизайн страницы вышел из строя. Я могу это исправить, но мне интересно, есть ли что-то подобное.

Было бы здорово, если бы что-то подобное могло сработать:

var navbar = document.getElementById ('navbar');
navbar.innerHtml = url ('navigation.txt');

В настоящее время я работаю в автономном режиме на своем сайте, поэтому я не думаю, что могу делать запросы xmlhttp. Верный? По крайней мере, мне все еще нужно заставить работать любой пример ajax. Это неудачно, потому что я думаю, что я мог бы легко использовать это для моего приложения.

Вот моя разметка navbar. Это не очень сложно, поэтому у меня есть ощущение, что я просто отредактирую его вручную.

<nav>
    <ul id="navbar">
        <li><a href="biosketch.html">Biosketch</a></li>
        <li><a href="projects.html">Class Projects</a>
            <ul>
                <li><a href="projects.html#SeniorProject">Senior Project</a></li>
                <li><a href="projects.html#WindTurbine">Wind Turbine</a></li>
            </ul>
        </li>
        <li><a href="#">Resume</a></li>
        <li><a href="#">Work Experience</a></li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</nav>

Ответы на вопрос(7)

Решение Вопроса

обычно это делается на стороне сервера с включением для не AJAX-сайтов. Тем не менее, я думаю, что вы можете использовать шаблоны закрытия Google. По сути, вы определяете шаблон на языке шаблонов, который генерирует функцию javascript, которую вы можете вызывать для отображения вашего HTML.

http://code.google.com/closure/templates/docs/helloworld_js.html

Пример:

--templates.soy

{namespace templates}

{template .nav}
<ul id="navbar">
    <li><a href="biosketch.html">Biosketch</a></li>
    <li><a href="projects.html">Class Projects</a>
        <ul>
            <li><a href="projects.html#SeniorProject">Senior Project</a></li>
            <li><a href="projects.html#WindTurbine">Wind Turbine</a></li>
        </ul>
    </li>
    <li><a href="#">Resume</a></li>
    <li><a href="#">Work Experience</a></li>
    <li><a href="#">Contact Me</a></li>
</ul>
{\template}

Затем вы запускаете следующую команду, чтобы скомпилировать ее в функцию JavaScript

java -jar SoyToJsSrcCompiler.jar --outputPathFormat templates.js  templates.soy

Это создаст файл с именем templates.js, содержащий функцию templates.nav, которую вы можете вызвать со своей страницы, как показано ниже:

document.getElementById('navbar').innerHTML = templates.nav();

Это даже не использует слияние данных, которое позволит вам передать объект данных для рендеринга HTML, который не является статичным. Но я только показал вам это, так как это все, что вы просили. Я знаю, что вы можете просто вставить html в строку JS, но вам придется иметь дело с отсутствием помощи синтаксиса в вашем редакторе.

Единственный недостаток заключается в том, что для этого требуется JS, который вам не кажется противным. Однако, если вы хотите поддерживать клиенты без JS, вы можете сгенерировать шаблон на стороне сервера. Существует также компилятор, который генерирует методы закрытия Java google. Вы можете посмотреть его на их сайте.

Надеюсь, это поможет.

 Juan Mendes05 янв. 2011 г., 20:05
Я предлагаю вам пойти еще дальше, играя с ним. Вероятно, есть еще один кусок HTML-кода, который вы используете, чтобы обернуть всю страницу. Сделайте этот шаблон также, чтобы было проще изменить общий вид. Этот шаблон будет вызывать шаблон навигации внутри себя.
 ptpaterson05 янв. 2011 г., 19:57
Это очень круто. Я определенно собираюсь проверить это. Я также понимаю, что если я собираюсь публиковать какие-либо сайты в Интернете, зная, что php / asp будет важен, поэтому мне придется вскоре начать работу над этим здесь.

сервера, попробуйте это:

var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
}

http.open("GET", "navigation.txt");
http.onreadystatechange=function() {
  if(http.readyState == 4) {
    var navbar = document.getElementById('navbar');
        navbar.innerHtml = http.responseText;
  }
}
http.send(null);
 ptpaterson05 янв. 2011 г., 19:51
Когда я запускаю это, я получаю «Запросы перекрестного происхождения поддерживаются только для HTTP».

лучше всего создать отдельный файл и внедрить его в разные веб-страницы.

Это возможно благодаря этому:https://www.w3schools.com/howto/howto_html_include.asp

Вы пишете html панели навигации в отдельном файле .html и вызываете его так:

<div w3-include-html="content.html"></div>

Затем вызовите функцию JavaScript из

<script src="https://www.w3schools.com/lib/w3data.js"></script> 

которыйw3IncludeHTML();

И вы должны иметь это и работает! Надеюсь, это помогло! :)

эти виды повторно используемых фрагментов разметки генерируются на стороне сервера, в основном с помощью механизма шаблонов.

Вы можете изменить настройки безопасности Firefox, чтобы разрешить автономные вызовы AJAX, но, вероятно, лучше настроить локальную среду разработки, в которой вы можете начать использовать язык на стороне сервера, и делать это правильно с самого начала.

Если вы используете JSP (или аналогичную технологию), вы можете просто использовать что-то вроде SiteMesh, чтобы помочь с шаблонамиВы можете использовать серверные включенияВы можете написать функцию JavaScript для программного построения необходимой вам DOM (не требуется AJAX), а затем просто вызывать эту функцию JS на всех ваших страницах (без дублирования кода)

может быть статичным или чрезвычайно сложным, решать только вам.

<?php include 'includes/nav.php'; ?>

содержимое nav.php может быть<nav> элемент целиком. В идеале вы можете запрограммировать его на отображение / скрытие элементов на основе текущего «раздела», а также на переключение определенных классов на основе этого раздела.

как вы выразились, это код на стороне клиента.

Но если бы я не использовал язык на стороне сервера (ASP.NET или PHP), я бы использовал небольшой файл .js, который отображает панель навигации, и я бы просто добавил<script src='js/navbar.js'></script> куда будет идти навигационная панель

Таким образом, когда вам нужно изменить его, вы меняете только .js, и он будет обновляться на каждой другой странице.

Ваш ответ на вопрос