【问题标题】:Running javascript every time page is modified [duplicate]每次修改页面时运行 javascript [重复]
【发布时间】:2014-10-30 10:39:33
【问题描述】:

我有一个用户脚本,每次 AJAX 修改附加用户脚本的任何页面时,我都需要运行它。有什么方法可以监听 XMLHttpRequest-s 吗?

【问题讨论】:

  • 您是否使用 jQuery 处理您的 Ajax 请求?您可以使用api.jquery.com/ajaxcomplete 方法。
  • @Andy 我想听所有的 Ajax 请求,而不仅仅是我的。这是一个用户脚本,应该在网络的所有页面上运行。

标签: javascript jquery xmlhttprequest userscripts


【解决方案1】:

如果没有您使用的代码,我无法确切知道您在寻找什么,但我希望这很有用。

var request = new XMLHttpRequest();
request.open("GET", "http://yoururl");
request.onload = function () {
    if (this.status >= 200 && this.status < 400) {
        // HERE RUN THE FUNCTION YOU WANT TO RUN AGAIN
    }
};
request.send();

【讨论】:

  • 我不想创建新请求。例如,我希望每次在 Google 中更改页面时都运行脚本。
【解决方案2】:

据我所知,您希望每次页面被 ajax 请求修改时运行某个脚本。

$( document ).ajaxComplete(function() {
  console.log("an ajax request was completed);
});    

如果您将 console.log 替换为您的代码,它将在每次在文档(网页)上完成 ajax 请求时运行。

在不使用 jquery 的情况下检查它应该可以:
https://stackoverflow.com/a/18259603/4194167

也别忘了添加

@run-at document-start

对于您的用户脚本,它需要在网页运行之前加载。

【讨论】:

  • 我认为只有当用户脚本在主机页面上使用 jquery 版本而不是它自己的版本时才会发生这种情况。
  • 主机页面不使用jquer会怎样??
  • 如果页面没有使用jquery什么都没有发生,我不知道版本是否必须相同,回答编辑
猜你喜欢
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2016-02-02
  • 1970-01-01
  • 2013-03-28
  • 2015-07-09
相关资源
最近更新 更多