Cross browser DOM attribute change watcher