如何使用 javascript 或 jQuery 处理多个 HTML 中的通用代码

2024-03-30

我有一个应用程序,其中有近 30 个 html,它们共享一些通用代码,如果我对其进行任何更改,我需要在每个页面上更改它。下面是我在所有页面上使用的代码片段。

<div>
  <ul>
    <li class="current"><a href=".html" ></a></li>
    <li><a href=".html"></a></li>
    <li><a href=".html"></a></li>
    <li><a href=".html"></a></li>
  </ul>
 </div>

有没有什么解决方案可以将其保存在单个文件中并在我想要的任何地方重复使用?


有多种方法可以实现这种包含,以使代码更易于维护。

PHP


当然,如果你想使用 PHP,首先想到的是使用include() http://www.php.net/manual/en/function.include.php它包含并评估外部文件或脚本中的代码。

您可以这样使用它:

<?php include('path/to/file.html'); ?>

Note!请注意:您的容器文件必须是.php文件以便从服务器评估该指令。您只需更改文件扩展名即可实现此目的。当然,还要确保您的服务器可以解析 PHP。

另外,请注意与include_once() http://php.net/manual/en/function.include-once.php,在这种情况下我不会推荐。

SSI(包括服务器端)


If you don't want to use PHP, you can do that very simple and clean with a Server side include http://httpd.apache.org/docs/1.3/howto/ssi.html[Wikipedia http://en.wikipedia.org/wiki/Server_Side_Includes]. An SSI looks like an HTML comment:

<!--#include virtual="your.html" -->

Note!你必须确保有mod_include http://httpd.apache.org/docs/1.3/mod/mod_include.html在您的 Apache 服务器中安装并启用,并在您的httpd.conf or .htaccess file:

Options +Includes

阅读上面的文档链接以获取更多信息。

客户端包括


您的问题实际上指定在 JS 或 jQuery 中执行此操作。不确定它是否是因为您不知道服务器端选项,或者您是否真的想要客户端选项。无论如何,还有一些客户端解决方案。

考虑到这种可能性,我会推荐服务器端解决您的问题。

IFrame元素


The <iframe> https://developer.mozilla.org/en-US/docs/HTML/Element/iframe元素包含页面中单独区域中外部文件的内容。你可以像这样使用它:

<iframe src="your.html" width="x" height="y"><p>Fallback text</p></iframe>

对象元素


The <object> https://developer.mozilla.org/en-US/docs/HTML/Element/object元素做了类似的事情<iframe>,但虽然后者更多地被设计为一种手段sandbox一个应用程序,前者感觉更集成在您的页面中。用法如下:

<object type="text/html" data="your.html"></object>

JavaScript 插入


将代码转换为 Javascript 文件并指示该文件将内容插入到 DOM 中。这是一个例子

外部.js

var element = '<div>
                   <ul>
                     <li class="current"><a href=".html" ></a></li>
                     <li><a href=".html"></a></li>
                     <li><a href=".html"></a></li>
                     <li><a href=".html"></a></li>
                   </ul>
               </div>';

容器.html

<script type="text/javascript" src="external.js"></script>
<script>
     document.getElementById('#containing-element').innerHTML(element);
</script>

AJAX


jQuery 可以帮助您轻松处理一些 AJAX 调用。你可以使用jQuery.get() http://api.jquery.com/jQuery.get/ or jQuery.load() http://api.jquery.com/load/。我建议你使用后者,因为load()将加载的元素直接注入到 DOM 中,并且您还可以准确指定要加载的部分,这非常有用,特别是如果您想将所有包含内容存储在一个外部 HTML 文件中。

jQuery(document).ready(function ($){
    $('#containing-element').load('your.html');
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 javascript 或 jQuery 处理多个 HTML 中的通用代码 的相关文章

随机推荐

  • 将集合转换为表达式 Maple/ 将前缀更改为固定表达式

    如何将下面的集合转换为表达式 Expression a b a x y can be any operator 所需输出为 result a b a x y required output 我尝试使用下面的转换函数进行转换 asString
  • 将多个 .txt 文件合并为 csv

    Python 新手 我正在尝试将多个文本文件合并为 1 个 csv 下面的例子 文件名 csv Alpha 0 0 1 0 15 0 2 0 25 0 3 文本1 txt Alpha Beta 0 10 0 2 20 0 3 30 文本2
  • Ruby Rails - 为 AJAX 调用控制器操作构建数据

    我的网站上需要一个按钮 可以将信息发送到控制器的创建操作 页面时间 它似乎有效 尽管它没有发送我指定的所有数据 可能与我无法构建数据向量有关 我已通过以下方式在我的 config routes rb 文件中提供 POST 请求post pa
  • Admob实施错误

    我在应用程序中实施 Admob 时遇到问题 这是我的 main xml
  • Java 在 ^(插入符号?)上分割不起作用,这是一个特殊字符吗?

    在Java中 我试图拆分 性格 但它无法识别它 逃跑 抛出代码错误 这是一个特殊字符还是我需要做其他事情才能让它识别它 String splitChr String fmgStrng aryToSplit split splitChr Th
  • `a = b || 的语法糖a`, `a = b && a`

    For a a b a a b 有很好的语法糖a b a b 同样经常出现的还有 a b a a b a 有没有好的语法糖或简短的方法来编写这个 a b a 可以重写为 a b if b 可以重写而无需重复a or b as x b and
  • 强制 MATLAB mmreader 或 avireader 使用不同的编解码器?

    当我需要播放 AVI 文件时 如何强制 MATLAB 函数使用不同的编解码器 我使用的是 windows7 我发现 indeo5 编解码器由于操作系统的原因无法正常工作 所有代码在 XP 上都可以正常运行 Thanks 如果您的问题是如何使
  • Rails 3 自定义操作表单

    我在 Rails 3 中将表单路由到自定义操作时遇到问题 以下是我的路由 resources photos do resources comments collection do get update states end member d
  • Delphi:解析未知结构的记录

    有没有一种方法可以获取记录并以编程方式遍历其所有字段 而无需显式执行 Record somerfield 我想要做的是一个将记录保存 加载为 INI 文件的通用函数 以便我可以从记录结构中添加或删除字段 而无需每次在记录中删除或添加字段时重
  • 是否可以在react项目中使用dotenv?

    我正在尝试设置一些环境变量 用于对 dev prod 端点进行 API 调用 密钥取决于 dev prod 等 我想知道使用 dotenv 是否有效 我已经安装了 dotenv 并且正在使用 webpack 我的 webpack 入口是ma
  • 在 Python 数据框中获取一天的一部分(早上、下午、晚上、夜晚)

    这是我的数据框 我需要根据行值的时间创建一个新列 早上 下午 晚上 晚上 这是我的代码 if prods hour lt 4 prods hour gt 8 prods session Early Morning elif prods ho
  • 一个应用程序具有多个 component.js:如何加载共享模块?

    我们有一个 SAPUI5 应用程序 其中定义了多个组件 即多个 Component js 文件 每个组件都在各自的子文件夹中作为应用程序根目录的直接子文件夹 下图显示了项目结构 组件 1 指定为com test component1 分量
  • Ecto 构建多个关联

    目前正在使用 Ecto Postgres 从事 Phoenix 项目 创建评论时 作为评论belongs to用户和文章 有没有一种方法可以构建多个关联来生成一个变更集 像这样的伪代码 comment changeset build ass
  • 将外部 png 加载到 AS2 swf 中,该 AS2 swf 加载到 AS3 swf 包装器中

    我有一个 Wrapper SWF 可以加载一系列 AS2 电影 每个 AS2 影片都会加载一系列 png 文件 AS3 wrapper swf gt AS2 1 swf gt image 1 png gt image 2 png gt AS
  • sqlalchemy - query.all() - 要字典的元组列表

    这是我的电话 session query User username User first name User last name all 它返回 myUsername myFirstname myLastname 我希望其格式如下 use
  • 将新管理员添加到活动管理员

    我正在为我的用户使用设备 我最近安装了导轨活跃管理宝石 http activeadmin info 一切都很顺利 但是我不知道如何添加新的管理员用户 我可以看到活跃管理员创建了一个admin user数据库中的表与用户 电子邮件受保护 cd
  • 数据表复选框没有获得价值

    长话短说 所以我尝试使用 POST 来获取我的 Flask 模板中的复选框值 但是 我在模板中的数据表 数据表按钮 中使用了一些动态表 这些数据表导致我的发布请求不起作用 在不使用数据表的情况下 如果它只是一个很长的常规表 那么我的发布请求
  • iphone开发-GDB错误信号EXC_BAD_ACCESS

    我收到信号错误EXC BAD ACCESS当尝试从 randomBallPick 方法检索返回输出时 我可能做错了 NSString temp self randomBallPick upBall1 image UIImage imageN
  • 当 btoa 被弃用时,如何在 ReactJS 中编码 Base 64 字符串?

    我正在使用一个 API 它要求我授权我的客户端 ID 和客户端密钥 我尝试使用 btoa 方法 但它说它已被弃用 这是我到目前为止所尝试过的 授权 基本 btoa ClientID ClientSecret 这似乎给出了相同的结果btoa
  • 如何使用 javascript 或 jQuery 处理多个 HTML 中的通用代码

    我有一个应用程序 其中有近 30 个 html 它们共享一些通用代码 如果我对其进行任何更改 我需要在每个页面上更改它 下面是我在所有页面上使用的代码片段 div ul li class current a href html a li l