我正在开发一个Greasemonkey脚本,这个脚本会更改表中的一些元素。但是,当我们单击表中的按钮时,会发生异步回发并刷新表。
所以,我的元素也会刷新。我怎么知道回发已经发生,以便我可以再次运行我的脚本来更改表中的新元素? (该页面使用Telerik。)
答案 0 :(得分:1)
不要试图检查回发这几乎总是一种痛苦的做事方式。你关心表格内容,监控它。
请参阅:
答案 1 :(得分:0)
就像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();