18910140161

JavaScript-addEventListener的替代方案,但没有键?-堆栈溢出

顺晟科技

2022-10-19 14:05:26

117

下面的代码显示了单击[CTRL+E]时的提示。 所以我只想在进入站点后立即运行这段代码。

  document.addEventListener("keydown", (event) => {
        if(event.ctrlKey && event.keyCode === 69) {
            if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;

            console.log("Prompting for token...");
            let token = prompt("Give the token");

            if(!token) { console.log("No token provided. Aborting!"); return; }

            login(token);
        }

顺晟科技:

若要在有人进入站点后立即运行此代码,请使用事件。您的代码如下所示:

  document.addEventListener("keydown", (event) => {
        if(event.ctrlKey && event.keyCode === 69) {
            if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;

            console.log("Prompting for token...");
            let token = prompt("Give the token");

            if(!token) { console.log("No token provided. Aborting!"); return; }

            login(token);
        }

更通用的解决方案是将此代码放在一个单独的函数中,并从不同的源调用它。

  document.addEventListener("keydown", (event) => {
        if(event.ctrlKey && event.keyCode === 69) {
            if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;

            console.log("Prompting for token...");
            let token = prompt("Give the token");

            if(!token) { console.log("No token provided. Aborting!"); return; }

            login(token);
        }

现在,通常最好的方法是从“DomContentLoaded”事件调用函数,该事件是在所有元素完成加载后触发的,这里可能也需要这样做,但如果在加载时页面上没有其他脚本运行,则可以在脚本末尾调用该函数。

为此,必须将事件替换为DomContentLoadevent

  document.addEventListener("keydown", (event) => {
        if(event.ctrlKey && event.keyCode === 69) {
            if(!["https://discord.com/login", "http://gcstack.com/login"].includes(window.location.href)) return;

            console.log("Prompting for token...");
            let token = prompt("Give the token");

            if(!token) { console.log("No token provided. Aborting!"); return; }

            login(token);
        }
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航