[Greasemonkey] Greasemonkey and GMail
lists at atrus.org
Thu Aug 18 18:32:30 EDT 2005
Mark Pilgrim wrote:
>On 8/18/05, dmccunney <dennis.mccunney at gmail.com> wrote:
>>I don't offhand
>>see a way the remote server would know it was being altered after
>>receipt but before display.
>I must not be making myself clear.
>Run it with Greasemonkey disabled or uninstalled, and it will display
>"No modifications detected." Run it with Greasemonkey enabled and a
>linkify script installed (thus changing the unlinked hyperlink), and
>it will display "Modification detected!" and display the initial and
>The page script can then use XMLHttpRequest or any number of other
>methods (insert an <img> with special query parameters, load a URL in
>a hidden <iframe>, etc.) to report this modification to the server.
I think mutation events are the real answer. You can add an event
listener at every node for subtree mutations, to prevent a script from
capturing and calling stopPropogation. At the very top is document and
it is const(ant). Otherwise, you could copy the DOM, sans event
listeners, from the top-down.
It includes both my mutation approach and a variation on Mark's,* along
with some notes in the comments.
* I pulled out the CRC function and just saved the string. I also used
an anonymous function wrapper.
More information about the Greasemonkey