草庐IT

javascript - Hrefs vs JavaScript onclick(关于 Unobtrusive JavaScript)

coder 2023-08-10 原文

关于使用带有显式 href 的链接/ 标记指向您网站中的其他页面(即 href="/blah/blah/blah.html)与使用 href 的最佳做法是什么/divs/etc. 没有明确的 href,并且在文档就绪处理程序中使用 JavaScript 在 main.js 文件中设置了它们的 onclick。

在 Web 开发方面,我不是专家,但我很喜欢学习 jQuery 等,并且发现自己赞成 Unobtrusive JavaScript 的概念。虽然上面的两个选项都没有打破这种心态的“HTML 中没有 JavaScript”部分,但我想我已经挂断了“结构和表示与行为的分离”。虽然我承认在其中放置一个 标记并显式设置 href 更自然,但我发现自己认为这确实是行为,因此应该在 JS 中设置。

这是太过分了,还是我只是不习惯?我的另一面看到了将它放在 JS 中的好处,b/c 现在我有能力完全控制该链接的行为,而无需更改 HTML 中的任何内容。我猜你会说我在众所周知的围栏上。请帮我下来。 =)

(注意:该站点大量使用 JavaScript,因此关闭 JS 时提供功能的概念并不是真正的问题,因为如果没有它,大多数站点将无法运行。)

最佳答案

出于多种原因,这确实太过分了。

  1. 大部分都是棘手的代码,应该避免。
  2. 它不会为您的网站带来任何实际好处。
  3. 对于 no-js 没有 Eloquent 回退。
  4. 它对 SEO 有负面影响。具体来说,机器人不会运行您的脚本,因此不会看到链接,最终不会正确地为您的网站编制索引。
  5. 可能最重要的是,这种影响会严重影响屏幕阅读器或禁用 JS 的用户的用户体验(例如,许多手机浏览器禁用 JS)

最后,除非您明确需要打破常规(例如遗留支持),否则您应该尽力遵循不显眼的设计,从使用 JavaScript 创建静态结构的意义上来说,这是非常显眼的,用 HTML 做的事情要好得多。

关于javascript - Hrefs vs JavaScript onclick(关于 Unobtrusive JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039641/

有关javascript - Hrefs vs JavaScript onclick(关于 Unobtrusive JavaScript)的更多相关文章

随机推荐