Hi people,
How to I can detect if a div was changed after the page loaded?
E.g. by innerHTML function.
ps: onChange not is valid for tag div. Reference here on w3c.
Thanks!
My immediate thought is that you could md5(innerHTML onload) your div's and store the reult (as a JavaScript variable). Then, whenever you need to know if the div's contents have changed, compare md5(current innerHTML) with the stored md5.
Md5 would be a cheap way to store a representation of innerHTML without needing to store inneHTML itself. Even cheaper would be innerHTML.length
but a subsequent comparison would be significantly less reliable unless you can make length assumptions about your div's contents.
Of course, with these techniques no event will fire as it would if onchange were available so you would need to code it somehow differently.
If you don't know what md5 is, then try an internet search (Google, Alta Vista etc).
Airshow
Airshow, the problem still... window.onload = function () { someVar = document.getElementById('myDiv').innerHTML.length; }; //or md5 like you suggested.
Right, done.
Now I need to compare length after the div content change?
How to?
Zeg,
Now I need to compare length after the div content change?
That is indeed your problem.
Because onchange
is not available, you have no alternative than to perform the comparison :
Airshow
Hi people,
How to I can detect if a div was changed after the page loaded?
E.g. by innerHTML function.
ps: onChange not is valid for tag div. Reference here on w3c.
Thanks!
If you have control of the entire page, then the content of a div should change only under program control, under your control. Thus when your program changes the content, it should then call the respective 'onchange' function.
If your program is less deterministic, you'll have to use a background function that periodically checks all your divs of interest. If you are clever, you may be able to add an md5() method to each div; this method returns the md5sum of the innerHTML content; you should also add the original_md5sum value to each div. (Remember, this is ECMAScript: highly flexible. The DOM isn't necessarily etched in stone.)
So, onload:
For background functions, look into interval timers.
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.