Внешняя ссылка файла Javascript в IE - PullRequest
1 голос
/ 02 ноября 2009

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

HTML-код имеет это для внешней ссылки:

<script type="text/javascript" language="javascript" src="links.js"></script>

Javascript выглядит так:

document.write(<div id="wrapper">
<div id="header">
<ul>
<li><a href="home.html">Home </a></li>
<li><a href="catering-home.html">Catering </a></li>
<li><a href="prostart-home.html">ProStart </a></li>
<li><a href="recipes.html">Recipes</a></li>
</ul>
</div>
</div>)

Это прекрасно загружается в Firefox, но часть страницы, написанная на JavaScript, не загружается в IE. это как написан код или ссылка, которая мешает IE загрузить его?

Ответы [ 4 ]

2 голосов
/ 02 ноября 2009

Вам понадобятся кавычки:

document.write('<div id="wrapper">'+
'<div id="header">'+
'<ul>'+
'<li><a href="home.html">Home </a></li>' +
'<li><a href="catering-home.html">Catering </a></li>' +
'<li><a href="prostart-home.html">ProStart </a></li>' +
'<li><a href="recipes.html">Recipes</a></li>' +
'</ul>' +
'</div>' +
'</div>');

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

1 голос
/ 02 ноября 2009

Поместите ссылки в отдельный HTML-файл и включите его на всех страницах. Все основные веб-серверы поддерживают это. Например:

  • Если у вас есть PHP, это может быть <?php include('links.html'); ?>
  • Если у вас есть Apache, это может быть <!--#include virtual="/links.html" -->
1 голос
/ 02 ноября 2009

Ваши кавычки не правильно экранированы. Попробуйте вот так:

document.write("<div id=\"wrapper\"><div id=\"header\"><ul><li><a href=\"home.html\">Home </a></li><li><a href=\"catering-home.html\">Catering </a></li><li><a href=\"prostart-home.html\">ProStart </a></li><li><a href=\"recipes.html\">Recipes</a></li></ul></div></div>");
0 голосов
/ 03 ноября 2009

Я бы предложил создать массив для поддерживаемых вами ссылок, а затем его можно поместить в функцию, подобную:

var links=[
   ['home.html','Home'],
   ['catering-home.html','Catering'],
   ['prostart-home.html','Prostart'],
   ['recipes.html','Recipes']
  ];

document.write('<div id="wrapper">
<div id="header">;
 <ul>');
  var items=links.length;
  for(var i=0;i<items;i++){
    document.write('<li><a href="'+links[i][0]+'">'+links[i][1]+'</a></li>');
    }
document.write('</ul>
</div>
</div>');

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

...