用JavaScript操作HTML内容是不好的做法吗?

Is it bad practice to manipulate HTML content with JavaScript?

本文关键字:操作 JavaScript HTML      更新时间:2023-09-26

我目前正在做一个项目,我们使用半成品CMS。由CMS控制的部分站点在CMS后端中不可编辑。因此,提供CMS的公司建议我们使用jQuery来操作这些页面上的HTML内容。

对我来说这是一个坏主意-主要是因为我努力分开内容,设计&功能。

这是一个在过去对我很有帮助的理念——我发现如果我遵循这些原则,它更容易为不同的平台版本一个网站,并实现一个好的,可访问的网站。

但是我正在寻找更多的弹药,例如,这对SEO有什么影响?谷歌的蜘蛛能访问被操纵的内容吗?

是否有其他原因,为什么它是不好的做法,操纵HTML内容与JavaScript?

我绝对同意这不是最好的主意。

通常搜索引擎不会执行Javascript,而会读取预先修改过的代码。

我不确定我是否同意使用Javascript修改页面是一个坏主意。Javascript发展到现在正是为了做到这一点(包括标准化的DOM)。

当然,在Javascript中有一些事情是没有意义的,比如完全验证(有一种预验证逻辑可能是有意义的,以提供更好的用户体验,但服务器端必须总是做所有的检查),但"操纵HTML代码"本身并不坏。

显然,这取决于你需要做哪些特定的编辑。例如,如果要调整CSS,那么我同意用Javascript做这件事,因为CMS不允许它作为一个解决方案(例如,如果他们在下一次更新的CMS中触摸页面生成,它会破裂)。

    jQuery基本上是一个DOM/HTML操作库。大多数时候,当你使用jQuery时,你是在操纵DOM。
  • 理想情况下,这种操作应该只用于逐步增强用户体验。在可能的情况下,用户体验应该优雅地降级,以防它们不能或选择不运行Javascript。

我想你必须问自己,

  1. 我使用jQuery/Javascript作为主要手段来提供我的网站的内容吗?
  2. 我的网站是至少在可用性的最低水平与Javascript关闭?

如果第一个问题的答案是肯定的,而第二个问题的答案是否定的,我就会重新开始。

这是一个很好的选择,但我不会说操纵HTML内容(我指的是布局和样式)是一种不好的做法。这是当今网络的MO,否则你的动态内容,所有这些滑块和轮播等等,将仅限于CSS操作。

你的问题不同于用JS操纵HTML。你的问题是你操纵了一个第三方的 HTML内容。如果明天他们将<span>更改为<div>,或者将一个ID更改为另一个ID,那么你的JS可能会变得无用。

在你的情况下-我会非常不同做JS操作,但我不会基于一些更高的原则。