【问题标题】:How can I load JavaScript page refresh after click on link class?单击链接类后如何加载 JavaScript 页面刷新?
【发布时间】:2018-08-11 07:39:02
【问题描述】:

如何仅在用户单击特定链接类后才加载 JavaScript 主页刷新?当用户点击链接时,我需要它,一些 JavaScript(或 PHP,或其他)检测到他点击了此类链接,然后才刷新原始页面。

例子:

当用户点击时:

<a class="link_id" target="blank" href="http://externallink.com">external link</a>

JavaScript 下面自动加载:

window.location.reload();

PS:我不能使用onclick="location.reload()"、按钮或类似方法有很多原因(例如我的项目特殊性)。此外,我的 HTML 将是广泛而肮脏的。此外,项目让用户知道刷新是通过 onclick direct on 链接是不安全的。所以我正在寻找另一种方法来做到这一点。

【问题讨论】:

  • PS: I do not want to use "onclick" method. --- 为什么不呢?这就是它的真正用途。
  • 我需要加载基于链接 ID 的 JavaScript 代码。 Onclick 方法不适合我的上下文和目的。谢谢。
  • Onclick method does not fit my context and purpose --- 不正确。从字面上看,正是您的背景和目的
  • “只有在用户点击特定链接后我才加载 javascript 页面刷新” - 用户点击后。这就是 onclick 的用途。
  • 你可以使用javascript:window.location.reload();

标签: javascript


【解决方案1】:

onclick 完全按照你说的做。但是,如果您真的不想使用它,您可以随时这样做:

<a id="link_id" href="javascript:location.reload()">link</a>

以这个 sn-p 为例:

let i = 0;setInterval(() =&gt; {document.getElementById("span").innerHTML = i;i++}, 50);
<a href="javascript:location.reload()">link</a><br>
<span id="span"></span>

编辑:既然你真的告诉我你想要在 cmets 中得到什么,我给你提供代码!

由于您只有一个 ID 为 link_id 的元素,您可以执行以下任一操作:

<a id="link_id" href="http://link.com" onclick="location.reload()">link</a>

document.getElementById("link_id").onclick = location.reload;

document.getElementById("link_id").addEventListener("click", location.reload);

如果你在一个 ID 下有多个元素,你真的需要重新考虑你的 HTML 知识

另一个编辑:随着神秘和模糊的气氛展开,我看到你有多个元素和一个 ID,或者似乎。在这种情况下,请使用类,然后执行以下操作:

Array.from(document.getElementsByClassName("<classname>")).forEach(el => {
    el.addEventListener("click", () => {location.reload();});
});

我真的希望这是最后的编辑 - 当然,用你的班级名称替换 &lt;classname&gt;

Array.from(document.getElementsByClassName("<classname>")).forEach(el => {
  el.addEventListener("click", () => {
    if (!sessionStorage.getItem("reloaded")) {
      sessionStorage.setItem("reloaded", true);
      location.reload();
    }
  });
});

查看这个 jsfiddle - 它有效:https://jsfiddle.net/gbdu3vpm/1/

【讨论】:

  • 那么没有onclick就不行
  • 不存在仅当用户点击“link_id”id 时才允许“window.location.reload”功能的 javascript 代码?
  • 请查看编辑。不过,我确实使用了onclick,因为这是你唯一的选择
  • 嗨泽维。 document.getElementById("link_id").onclick = location.reload; 无需单击链接 ID 即可加载。 document.getElementById("link_id").addEventListener("click", location.reload); 不起作用。
  • 第一个怎么样?另外,我不明白您所说的clicking the link id 是什么意思。如果您提供更多上下文,例如元素上有任何事件侦听器,也许我可以提供更多帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
  • 2020-12-31
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 2014-01-14
  • 2014-02-11
相关资源
最近更新 更多