javascript - 仅在禁用 javascript 时使用链接

标签 javascript codeigniter-3 noscript

我为我的大学社区创建了一个社交网站,并且运行良好。有一个功能可以喜欢其他用户的帖子。喜欢是使用 javascript 的 onClick() 函数触发的。

最近由于安全原因,我们的许多成员(member)禁用了 javascript。

如果禁用了 javascript,是否有任何方法可以将用户重定向到特定页面?否则脚本应该可以工作。

为了更详细的描述,假设我当前的代码是这样的:

<a href="#" onclick="return likeFunction();">Item</a>

我想要的是这样的:

<a href="www.mysite.com/postController/likeAction" onclick="return likeFunction();">Like</a>

** 但只有当 onclick() 函数不起作用时 href 才应该处于事件状态。那可能吗? **

我的网站是用 php codeigniter 构建的。有什么解决办法吗?

最佳答案

只需在 onClick 事件中调用的函数上返回 false。 所以要么确保 likeFunction() 返回 false。或者,之后使用 onClick="likeFunction(); return false;" 返回 false。

一般来说,你应该总是在 href 中放置一个链接,而不是完全依赖 JS。 anchor 标记不应为 abused with the onclick event创建伪按钮。如果不需要在 href 中放置链接,您可以考虑使用按钮标签。

此外,href 应以协议(protocol)开头(http://www.example.com 而不是 www.example.com)。

旁注:您可以考虑通过调用 addEventListener 而不是使用 onClick 属性来附加 JS 事件。使用这两种方法都有不同的优缺点。我建议你看看这个答案:addEventListener vs onclick .

编辑:正如 WillardSolutions 所建议的,您可以使用 preventDefault 来确保在调用 onClick 事件时不会打开链接。有关详细信息,我建议您查看此答案:event.preventDefault() vs. return false

关于javascript - 仅在禁用 javascript 时使用链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53396453/

相关文章:

css - Firefox 无法从 Google Font API 渲染字体

javascript - 使用 Javascript 打印定义的内容

javascript - javascript中 "undefined"是否占用内存?

javascript - onkeyup、onkeydown 事件不会为 SPAN 元素触发

ajax - 通过ajax发送数据时Codeigniter 403 Forbidden Error

html - 使网站操作在 noscript 上起作用

javascript - youtube视频播放完后如何自动退出浏览器

php - Codeigniter 3 SQL注入(inject)查询

php - 以编程方式即时为多语言/多域站点创建 sitemap.xml

html - 如何强制 <noscript> 内联并继承 CSS 样式?