<span id="one"> one </span>
<span id="two"> two </span>


$("#one").mouseover(function(){
   $(this).css('background-color', 'red');
});

$("#two").click(function(){
   $(this).css('background-color', 'green');
});


    if (any changes on the site) {
        alert('changes detected');
    }

如何检测页面上的任何更改?这可能吗?我想使用函数 .live(),但是如何?

我不想单独检查页面上的每个功能。

LIVE:http://jsfiddle.net/d4PMB/1/

最佳答案

您可以使用window.setTimeout(),捕获主体的当前HTML(document.body.innerHTML)并将其与先前保存的HTML进行比较:

var lastBodyHTML = "";
var changes = 0;

function test() {
    if (lastBodyHTML == "") {
        lastBodyHTML = document.body.innerHTML;
    }

    if (lastBodyHTML != document.body.innerHTML) {
        changes++;
        alert("CHANGE #" + changes);
        lastBodyHTML = document.body.innerHTML;
    }
    window.setTimeout(test, 1000);

};

test();

工作示例:http://jsfiddle.net/d4PMB/7/

关于javascript - 使用jQuery和.live()函数检测到页面上的任何更改?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7979332/

10-13 00:55