我正在开发一个 Greasemonkey 脚本,这个脚本改变了表格中的一些元素。但是,当我们单击表中的按钮时,会发生异步回发并刷新表。
所以,我的元素也刷新了。我怎么知道回发已经发生,以便我可以再次运行我的脚本来更改表中的新元素?(该页面使用 Telerik。)
我正在开发一个 Greasemonkey 脚本,这个脚本改变了表格中的一些元素。但是,当我们单击表中的按钮时,会发生异步回发并刷新表。
所以,我的元素也刷新了。我怎么知道回发已经发生,以便我可以再次运行我的脚本来更改表中的新元素?(该页面使用 Telerik。)
不要费心去检查回发 这几乎总是一种痛苦的做事方式。你关心表格内容,监控它。
看:
和其他几个。
正如 Brock Adams 在他的回答中所说,我决定监控表并编写以下代码:
function repairInputEvents() {
for (var i = 0; i < document.getElementsByTagName("input").length; i++) {
//Add event to buttons that cause postback.
document.getElementsByTagName("input")[i].addEventListener("click", function() {
//Run the following just before postback.
document.getElementsByClassName("table")[0].setAttribute("title", "old");
var checkAjaxInterval = setInterval(function() { checkAjax(); }, 1000);
function checkAjax() {
if (document.getElementsByClassName("table")[0].getAttribute("title") != "old") {
clearInterval(checkAjaxInterval);
repairInputEvents();
repairSelectEvents();
}
}
});
}
}
//First run
repairInputEvents();
repairSelectEvents();