首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ejs模板中包含.js文件以操作DOM不起作用

的原因是ejs模板是在服务器端渲染的,而.js文件是在客户端执行的。由于ejs模板在服务器端渲染完成后会生成静态的HTML页面发送给客户端,所以客户端无法直接执行.js文件中的代码。

解决这个问题的方法是将需要操作DOM的代码放在客户端执行的<script>标签中,而不是通过包含外部的.js文件。可以在ejs模板中直接编写<script>标签,将需要操作DOM的代码写在其中。这样在浏览器渲染页面时,会执行<script>标签中的代码,从而实现对DOM的操作。

以下是一个示例:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
  <title>EJS Template</title>
</head>
<body>
  <h1>Hello, <%= name %>!</h1>

  <script>
    // 在这里编写需要操作DOM的代码
    document.querySelector('h1').style.color = 'red';
  </script>
</body>
</html>

在上面的示例中,<%= name %> 是一个ejs模板的变量,可以根据实际情况替换为需要的内容。在<script>标签中,使用JavaScript代码来获取h1元素并修改其样式,将文字颜色设置为红色。

需要注意的是,ejs模板中的JavaScript代码只能操作当前页面的DOM,无法直接操作其他页面或跨域的内容。如果需要跨域操作DOM,可以通过Ajax等方式进行通信。

推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云云函数(https://cloud.tencent.com/product/scf)可以提供服务器运维和云原生的支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Web前端模板引擎之字符串模板

一、前言 Web前端领域里用到的模板引擎技术主要有三种,它们分别是: 基于字符串的模板 基于Dom操作模板 基于虚拟Dom模板 本文着重介绍基于字符串的模板引擎的实现原理,分析它的优点缺点以及使用的场景...二、石器时代 进入正文之前,我们先回顾一下模板引擎出现之前,暂且称之为“石器时代”,我们是如何利用JS改变页面结构的。...这些模板又可以细分为2类:一种是不包含逻辑处理,只作数据绑定用的,如mustache.js;另一种是既有逻辑处理,也有数据绑定的,如EJS。 下面,我EJS的语法为例,实现一个简单的字符串模板引擎。...> ‘’之间是JS的表达式,而在‘‘之间是普通的JS语句,可以进行逻辑判断和条件循环等操作。...反之,更先进的基于Dom或者虚拟Dom操作模板引擎可能是更好的选择。

1.3K20
  • 技术干货丨Web前端字符串模板浅析

    石器时代 进入正文之前,我们先回顾一下模板引擎出现之前的时代,我们暂且称之为“石器时代”,我们是如何利用JS改变页面结构的。...这些模板又可以细分为两种情况:一种是不包含逻辑处理,只作数据绑定用的,如 mustache.js ;另一种是既有逻辑处理,也有数据绑定的,如 EJS 。...下面,我 EJS 的语法为例,实现一个简单的字符串模板引擎。模版引擎的编译流程如下: 首先,需要编译模板字符串,将其转换为 JS 能够理解的语法。.../li> ‘’之间是 JS 的表达式,而在‘‘之间是普通的 JS 语句,可以进行逻辑判断和条件循环等操作。...反之,更先进的基于Dom 或者虚拟 Dom 操作模板引擎可能是更好的选择。

    68420

    教你如何在React及Redux项目中进行服务端渲染

    然后Node环境返回,比如在Express框架,返回渲染一个模板文件      res.render('messageClient/message.html', { appHtml...需要注意的是这里的ejs模板进行了自定义分隔符,因为webpack进行编译时,HtmlWebpackPlugin 插件自带的ejs处理器可能会和这个模板ejs变量冲突 express自定义即可...// 自定义ejs模板 app.engine('html', ejs....__express); app.set('view engine', 'html'); ejs.delimiter = '|'; 接下来,浏览器环境的组件(以下这个文件为公共文件,浏览器端和服务器端共用...id=css' ] } Express的服务器框架,messageSSR 路由 渲染页面之前做一些异步操作获取数据 // 编译后的文件路径 let distPath

    3K10

    Webpack+vue+boostrap+ejs构建Web版GM工具

    上面的Tab和下面的内容还有处理逻辑的函数都分了三大块,不同的位置。在内容持续增加以后,全都写在一个html里太不方便了,而如果走ajax加载,调试和本地编辑都挺麻烦。...我的GM工具中使用Vue做模板引擎,前面有提到Vue模板引擎的支持。...// new VueLoaderPlugin() //开 .vue 支持的话加这一行 ] } HTML模板引擎和ejs webpack 默认是对js打包的,但是如果能在编译期对html打包才能满足我们...其实有很多模板引擎增加了对 webpack 的支持,而我之前用过一些 ejs ,比较轻量级,功能也足够,所以我还是用了 ejs 作为模板系统。...我们GM工具最终的 webpack.config.js 文件如下: const webpack = require('webpack'); const HtmlWebpackPlugin = require

    2.7K32

    Express进阶升级

    : 初始化项目结构: npm i -y #npm构建项目 npm i ejs #npm安装EJS库 01EJS初体验.JSEJS本质是对模板字符串的拼接,提供比原始操作具有更高效的方式 使用 ejs.render..., title, xiyou}); console.log(result); /views/index.ejs文件后缀 .ejs 用于标识这是一个 EJS模板文件,开发者项目中可以轻松识别和区分模板文件...#routes 目录包含路由文件 │ ├── index.js #这里,你可以定义应用的不同路由和对应的处理函数 │ └── users.js └── views #views 目录用于存放视图模板文件...还是有点无从下手 经过上述文件分析,我们大致了解如何定义自己的路由规则了: /routes 定义路由文件——>并配置app.JS中进行引用、暴漏 /views 定义ejs模板资源——>app.JS...、操作lowdb存取数据 最后:通过app.JS 文件管理配置路由封装暴漏路由请求API,如下是核心的routes文件: //01_lowdbAPI: //导入Express配置 var express

    24810

    EJS模板express的使用攻略及应用实例(建议收藏)

    ---- 三、文件形式使用模板 在上个例子,我们将模板放到变量template,数据量少的话还可以,倘若数据量比较大的话,将是一件十分恐怖的事情。...所以我们可以将模板放到文件,现在对以上示例进行改造。 1、创建views文件夹 2、views文件夹内创建one.ejs模板文件: <!...比如,我们要将模板文件放置到html文件夹内: 1、创建html文件夹 2、将上个示例的one.ejs移入html文件夹内 3、上示例的demo.js添加如下代码: // 设置模板文件夹为htmlapp.set..._%> 将结束标签后面的空格符删除 十、include 通过 include 指令将相对于模板路径模板片段包含进来。.../views/footer.ejs" 两个模板文件,我们可以通过以下代码将模板文件包含进来: 如果需要传值,

    4.7K21

    73个强无敌的NPM软件包

    配置模块 24.Config 对存储应用程序的配置文件进行设置,可以通过环境变量、命令行参数或外部源进行覆盖及扩展。...模板语言 29.Mustache Mustache 是一种无逻辑模板语法,适用于 HTML、配置文件以及源代码等几乎一切场景。它通过使用哈希或对象中提供的值,模板内扩展标签。...项目链接: https://www.npmjs.com/package/handlebars 31.EJS EJS 是一种简单的模板语言,允许您通过简单语法、快速执行与简单调试等便捷优势生成 JavaScript...系统模块 65.Fs-extra Fs-extra 包含经典 Node.js fs 包未提供的多种方法,例如 copy(),remove(),mkdirs() 等。...项目链接: https://www.npmjs.com/package/fs-extra 66.Node-dir 用于各类常见目录及文件操作的模块,包括获取文件数组、子目录以及对文件内容进行读取 /

    4.4K10

    hexo配置自己的博客站点

    显示列表 category.ejs 分类显示页 tag.ejs 标签页 hexo的模板解析,layout.ejs为入口,所有静态页面(如:文章、页面、首页、标签、归档、分类等)都会layout.ejs...此文件夹下的.js文件,作为hexo插件 的一种扩展存在,在编译过程起作用 source 此文件下的文件文件夹,在编译过程中会保持不变,供开发者使用 languages 多语言包 _config.yml...针对当前模板的配置文件,配置文件的信息可以被ejs模板访问 说明: 1....插件需要入node_moduels文件夹下,必须有.js和.package.json文件(也就是一个标准npm包即可). js文件: 'use strict' console.log('hexo-filter-list...本示例的下载包包含node_modules,需要手动放将hexo-filter-list放在node_moduels 3.

    89870

    【译】73个超棒且可提高生产力的 NPM 包

    6.Styled-components[19] 组件和样式之间架起桥梁的 CSS-in-JS 工具,提供了大量的特性,让你一种功能性和可重用的方式启动和运行样式组件。...配置模块 24.Config[45] 设置存储应用程序的配置文件,可以由环境变量、命令行参数或外部源覆盖和扩展。...模板语言 29.Mustache[50] Mustache 是一种无逻辑的模板语法。它可以用于 HTML,配置文件,源代码等任何东西。它的工作原理是使用 hash 或对象中提供的值模板展开标记。...系统模块 65.Fs-extra[88] fs -extra 包含了 Node.js fs 包没有包含的方法,比如 copy(), remove(), mkdirs() 66.Node-dir[89]...用于一些常见目录和文件操作的模块,包括用于获取文件数组、子目录和用于读取和处理文件内容的方法。

    5.9K30

    73个超棒且可提高生产力的 NPM 包

    6.Styled-components[19] 组件和样式之间架起桥梁的 CSS-in-JS 工具,提供了大量的特性,让你一种功能性和可重用的方式启动和运行样式组件。...配置模块 24.Config[45] 设置存储应用程序的配置文件,可以由环境变量、命令行参数或外部源覆盖和扩展。...模板语言 29.Mustache[50] Mustache 是一种无逻辑的模板语法。它可以用于 HTML,配置文件,源代码等任何东西。它的工作原理是使用 hash 或对象中提供的值模板展开标记。...系统模块 65.Fs-extra[88] fs -extra 包含了 Node.js fs 包没有包含的方法,比如 copy(), remove(), mkdirs() 66.Node-dir[89]...用于一些常见目录和文件操作的模块,包括用于获取文件数组、子目录和用于读取和处理文件内容的方法。

    4.5K20

    【架构师(第十七篇)】脚手架之 ejs 和 glob 的使用

    ---- 脚手架项目和组件初始化开发 将收获什么 ejs 模板渲染 glob 文件筛选 项目标准安装和自定义安装 组件库初始化和安装 主要内容 脚手架安装模板功能架构设计 脚手架模板安装核心实现 ejs...通过 include 指令将相对于模板路径模板片段包含进来。.../ 单个模板文件 ejs.render('<?...若字符括号,则匹配。若以 ! 或 ^ 开头,若字符不在括号,则匹配 !(pattern|pattern|pattern) 不满足括号的所有模式则匹配 ?...erN) 满足 1 个括号的模式则匹配 ** 跨路径匹配任意字符 安装 npm i glob -S 匹配所有 js 文件,忽略 node_modules 下的所有文件以及 webpack.config.js

    1.3K10
    领券