【问题标题】:Run javascript on website after refreshing刷新后在网站上运行javascript
【发布时间】:2017-01-24 08:27:42
【问题描述】:

我想要实现的是: 刷新网站 在上面运行我的 javascript 脚本(就像我把它放在 Chrome 控制台中一样)。

问题是:如何实现?

我也可以为此使用 PHP(在我的计算机上设置服务器,该服务器将重定向到所需的网站并在其上执行我的 javascript 程序)。

我想要实现的一些功能示例:

转到stackoverflow.com -> 点击StackExchange(你可以在左上角看到它,它可以通过JS 中的querySelector() 访问)-> 刷新stackoverflow.com -> 再次点击StackExchange -> 重复。 ..

【问题讨论】:

  • 你的问题在我脑海中浮现....
  • 只需在 body 上使用 onload 事件。这是参考w3schools.com/jsref/event_onload.asp
  • 问题是当我做这样的事情时:将我的 javascript 代码粘贴到我想运行 JS 的网站上的控制台,然后我刷新页面,我丢失了这个脚本,它不再可以运行,我必须一次又一次地粘贴它,但我希望它是自动的。
  • 设置 onload 事件不起作用。每次页面刷新时我都会丢失脚本(如上所述)。

标签: javascript jquery html web


【解决方案1】:

如果您想在 DOM 元素点击后刷新页面,您可以 attach an event handler 到该元素,然后在您的事件处理程序中执行 location.reload()reload the page

【讨论】:

  • 当我重新加载页面时,我丢失了脚本,我必须再次运行它。
  • @MindRoller 您可以在页面加载时运行的<script></script> 标签内添加 JavaScript。您的问题包括 jQuery 标记,因此您可能希望将此代码放在 $(document).ready() 函数中。
【解决方案2】:
 //When the document has loaded, call the function
    document.addEventListener("DOMContentLoaded", function(event) { 
        if(window.location.hash == "#page"){
            console.log("Page reloaded!");
        }else{
            console.log("Page has a new hit!");
        }
    });

您可以使用 DOMContentLoaded 事件监听器来解决您的问题。

【讨论】:

  • 它不起作用,因为当页面刷新时,脚本会丢失,我必须再次运行它。
【解决方案3】:

你可以这样做 -

var value = localStorage.getItem("logdata");

if(value != null) {
    eval(value);
    logdata();
}

并尝试从控制台将logdata 添加到localStorage。 示例 - localStorage.setItem("logdata", "var logdata = function(e) { console.log('data logged.'); }");

现在当您加载页面时,logdata 函数将被调用,您可以执行您的代码。

【讨论】:

  • 也不起作用,因为是的,我可以从本地存储中获取项目,但我必须一直执行它,如果页面被刷新,函数将保留在存储中,但不会自行执行下一次。看来是不可能了!大声笑!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 2012-07-14
  • 1970-01-01
相关资源
最近更新 更多