Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过javascript在html中包含html_Javascript_Html_Header_Include - Fatal编程技术网

通过javascript在html中包含html

通过javascript在html中包含html,javascript,html,header,include,Javascript,Html,Header,Include,我的问题与此类似 但这些答案对我来说并不适用。对象和iFrame创建了一个带有滚动条的框,我不希望这样,如果我有到其他页面的链接,我希望整个页面都改变,而不仅仅是框内的内容 这个指令不起作用 我只想使用html,因为这是如何建立网站,我们没有重新设计它。我这样做只是为了修改内容 在javascript文件中编写html页眉(或页脚),然后在所有html文件中包含.js,这是一种糟糕的做法吗 第一次编辑 我有大约70个不同的html静态页面。 我想更新内容,如徽标、菜单、网站的元描述、文本颜

我的问题与此类似

但这些答案对我来说并不适用。对象和iFrame创建了一个带有滚动条的框,我不希望这样,如果我有到其他页面的链接,我希望整个页面都改变,而不仅仅是框内的内容

这个指令不起作用

我只想使用html,因为这是如何建立网站,我们没有重新设计它。我这样做只是为了修改内容

在javascript文件中编写html页眉(或页脚),然后在所有html文件中包含.js,这是一种糟糕的做法吗


第一次编辑

我有大约70个不同的html静态页面。 我想更新内容,如徽标、菜单、网站的元描述、文本颜色等。但目前,我必须对这些内容进行70次不同的修改

我在菜单的html部分使用了javascript,因为菜单无论如何都使用javascript,并且在我所有的html文件中都包含了该文件

function writeJS(){
    var strVar="";
    strVar += "<body bgcolor=\"#000000\">";
    strVar += "<div class=\"Main_container\">";
    ...
    document.write(strVar);
}
writeJS();
函数writeJS(){
var strVar=“”;
strVar+=“”;
strVar+=“”;
...
文件编写(strVar);
}
writeJS();
例如,我不知道用这些标签做同样的事情是好是坏

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" ...


我相当确信,include解决方案只适用于服务器端。您是否尝试过该页面上提供的jQuery解决方案?它似乎符合您的javascript要求:

如果您是指客户端,那么您将不得不使用JavaScript或框架。 简单的开始方式,请尝试jQuery

$("#links").load("/Main_Page #jq-p-Getting-Started li");

这个指令根本不起作用


但这仍然是编写动态网站的糟糕方法。即使您不想运行ASP或PHP或PERL或服务器端JS或。。。。在您的生产服务器上,使用适当的CMS或模板系统进行数据开发,然后删除HTML以获得静态版本以供发布,这将更有意义。

是的,这是一种不好的做法。为正确的工作使用正确的工具

对于您提到的大多数内容,您需要使用外部样式表(2013年的bgcolor?)。这将使您不必更改70个文件

如果您还希望在页面之间共享内容,正确的方法是使用服务器端脚本(如php)将其包括在内


包括it客户端是混乱的,只能部分工作。您只能加载进入DOM的内容(因此不能加载元信息或Head元素的内容)。另外,当用户没有启用javascript时,您的站点将被完全禁用(现在还不是很常见,但仍然如此)。

我想有很多方法可以做到这一点:

  • 按照解决方案中的说明使用SSI
  • 如果您有php或类似的脚本语言,并且感觉舒适,您可以使用它
  • 使用JQuery或本机js代码使用简单的js注入。见:
  • 使用iframe和一些CSS来摆脱滚动条
  • 使用Javascript模板(下划线、主干线和许多其他模板)。另见:和

  • 希望这能有所帮助。

    你能详细说明一下你目前的情况,你想改变什么,什么不起作用。
    是,不是HTML。@MickJ我编辑了我的question@Quentin我想我还是会指定我试过,以防有人建议。谢谢对不起,我没有意识到矛盾。我的意思是我不想使用已经使用过的新语言(html和javascript)。我认为javascript是一种为网站创建附加组件的语言,但我可能错了,也许有些网站使用javascript的方式与其他网站使用PHP的方式相同。我同意这是一个糟糕的网站,但它是由一家已经不存在的外部公司制作的。这个网站不够重要,我不想花很多时间来重建它。我所拥有的只是几天时间,至少让它看起来不错(内容和css),我正在努力减轻我的工作。我没有对SSI进行任何调查,我也不会启用它,相反,我暗示这对我来说不是一个解决方案,因为我尝试了它,并且了解到这不应该起作用。我想让它简短,但我现在解释它无论如何…我会尝试你的解决方案。确实谢谢你,但正如我告诉symcbean的那样,这个网站是由一家外部公司建立的,现在已经不存在了,正确地重建它是不可能的。虽然使用了外部css,但对于某些元素,样式是在每个页面中编写的。我还问了自己关于用户禁用javascript的问题。使用javascript和不使用javascript哪个更好?问题不仅在于成本,而且在于将来的可维护性。如果这是一个一次性的,你可以去这样的黑客(但它仍然是一个黑客,不是好的做法,这是真正的问题,我想)。如果你想在将来维护这个页面,最好直接浏览它,并通过css正确地添加样式。如果您的站点支持php,您可以将其仅用于includes(1行),而忽略其他内容。你甚至不会注意到它就在那里。我们决定去一个wordpress.org网站:)至少把你所有的答案都归于原作者:我的评论明确指出代码来自他链接的页面,我没有为这个解决方案负责。不过,我将更新以包括直接链接。
    <!--#include virtual="/footer.html" -->
    
    <html>
       <div id="header">
         <noscript>....</noscript>
       </div>
       <div id="page_specific_content">
       ...
       </div>
       <div id="footer">
         <noscript>....</noscript>
       </div>
     </html>
    
     function addHeader()
     {
       var el=document.getElementById("header");
       if (el) {
          el.innerHTML="...";
       }
     }