1

我正在为一位老师开发一个网站,由于她以后可能想添加更多内容,因此我决定将出现在每个页面上的链接都用 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

4 回答 4

2

你需要这样的引号:

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 来自老师控制下的外部域,这就是这样做的原因之一。

于 2009-11-02T17:16:26.500 回答
1

您的引号未正确转义。试试这样:

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>");
于 2009-11-02T17:14:38.493 回答
1

将链接放在单独的 HTML 文件中,并将其包含在所有页面中。所有主要的 Web 服务器都支持这一点。例如:

  • 如果你有 PHP,它可能是<?php include('links.html'); ?>
  • 如果你有 Apache,它可能是<!--#include virtual="/links.html" -->
于 2009-11-02T17:42:17.243 回答
0

我建议为您维护的链接制作数组,然后可以将其放入如下函数中:

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 中更有意义,而且方法大致相同。这种风格是朝着创建一个从数据库中读取项目然后使用类似函数打印出来的站点迈出的良好一步。

于 2009-11-03T00:40:32.163 回答