Javascript 试图拥有一个<;h3>;基于URL的标记更改
经过几天的搜索和反复尝试,我仍然无法让它在没有崩溃的情况下工作 我试图实现的是更改.ejs文件中H3标记中显示的文本 这是因为我们正在构建的系统使用的是另一个文件的一部分,所以不需要创建更多的文件,只有这个标签需要更改它的文本 有关章节:Javascript 试图拥有一个<;h3>;基于URL的标记更改,javascript,node.js,express,Javascript,Node.js,Express,经过几天的搜索和反复尝试,我仍然无法让它在没有崩溃的情况下工作 我试图实现的是更改.ejs文件中H3标记中显示的文本 这是因为我们正在构建的系统使用的是另一个文件的一部分,所以不需要创建更多的文件,只有这个标签需要更改它的文本 有关章节: <%if (window.location.href === '/newWizard') { %> <h3><strong>Step of a Wizard </strong> - Some Text<
<%if (window.location.href === '/newWizard') { %>
<h3><strong>Step of a Wizard </strong> - Some Text</h3>
<% }else { %>
<h3>Same Text</h3>
<% } %>
向导的步骤-一些文本
同一文本
此文件由引用,该文件由引用一步
我们在Node.js和剑道网格设计的基础上构建这个软件
如果您对此有任何帮助,我将不胜感激,我将继续研究并处理它,如果我能让它正常工作,我将更新它。
window.location.href
,如果我没有弄错的话,将为您提供完整的URL。您可能需要检查window.location.pathname
,以便按照您描述的方式进行检查
您还可以根据需要在href
或路径名上进行一些模式匹配
更新
因为它是.ejs,所以它是在服务器上执行的,所以没有窗口对象
在客户端运行脚本。在HTML中创建
,给它一些id,比如
,然后添加一个脚本
if (window.location.pathname === '/newWizard') {
document.getElementById('title-heading').innerHTML = '<strong>Step of a Wizard </strong> - Some Text';
}
else {
document.getElementById('title-heading').innerHTML = 'Same Text';
}
if(window.location.pathname==='/newWizard'){
document.getElementById('title-heading')。innerHTML='向导步骤-一些文本';
}
否则{
document.getElementById('title-heading')。innerHTML='sametext';
}
尝试后检查了我的日志,但仍然显示“窗口”未定义。。。所以问题可能是我无法访问这个文件中的调用。我对它不太熟悉,但可能是因为它是.ejs,所以它是在服务器上执行的,所以没有窗口。您可能希望在JavaScript客户端执行此操作。我将使用一个代码段进行更新。您是否在节点中呈现此内容并将其发送到客户端?正如@Lucas所说,节点中没有窗口
对象。您必须获取req
的来源,并将其发送给您的控制器。上述方法已解决了我的崩溃问题,但由于某些原因,我无法获得“无法将属性'innerHTML'设置为null。这是否意味着我试图传递一些没有价值的东西给它,因为它没有在/newWizard中启动,或者我不应该使用innerHTML?这可能是因为在加载HTML之前,JavaScript正在执行。那么它就找不到你所指的元素了。(, )