繁体   English   中英

单击链接类后如何加载 JavaScript 页面刷新?

[英]How can I load JavaScript page refresh after click on link class?

仅在用户单击特定链接类后,我如何加载 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 直接链接是不安全的。 所以我正在寻找另一种方法来做到这一点。

onclick完全按照你说的做。 但是,如果您真的不想使用它,则可以随时执行以下操作:

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

正如这个片段所示:

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

编辑:由于您实际上在评论中告诉了我您想要什么,我向您展示了代码!

由于您只有一个 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();});
});

我真的希望这是最后一次编辑- 当然,将<classname>替换为您班级的名称

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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM