Gibt es eine Alternative zu DOMAttrModified, die in Webkit funktioniert?
Muss ich nutzen, diese DOM-event. IE hat onpropertychange, die tut, was ich brauche, es auch zu tun. Webkit scheint nicht, diese Veranstaltung zu unterstützen, jedoch. Gibt es eine alternative, die ich verwenden könnte?
InformationsquelleAutor der Frage blockhead | 2009-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl Chrome nicht Versand
DOMAttrModified
Veranstaltungen, die mehr leicht mutation Beobachter unterstützt seit 2011 und diese Arbeit für Attribut-änderungen, auch.Hier ist ein Beispiel für die Dokument-Körper:
Für ein einfaches Attribut ändern, die
console.log
Anweisung drucken würde:Konsole:
> color red black
InformationsquelleAutor der Antwort daluege
Wenn Sie mit dem zufrieden sind, lediglich die Erkennung von anrufen auf
setAttribute()
(im Gegensatz zum monitoring werden alle Attribut-änderungen), dann könnte man die über-Fahrt, die Methode auf alle Elemente mit:InformationsquelleAutor der Antwort Sean Hogan
Ich hatte die gleiche Frage und dachte, das zu ändern
setAttribute
so sehen was Sean getan hathabe ich kopiert. Hat Super geklappt, außer, dass es feuern, wenn ein Attribut mehrfach wurde auf den gleichen Wert gesetzt, so dass ich Hinzugefügt eine überprüfung, um meine Kopie zu überspringen auslösen des Ereignisses, wenn der Wert nicht geändert wird. Ich habe auchval = String(val)
basierend auf der Begründung, dasssetAttribute
wird zwingen, die zahlen zu Zeichenfolgen, so ist der Vergleich sollte erwarten, dass.Meine modifizierte version:
InformationsquelleAutor der Antwort Bob Kanefsky
Entnehmen Sie bitte der code:
https://github.com/meetselva/attrchange/blob/master/attrchange.js
'DOMAttrModified' + ('propertychange' für den IE) verwendet werden, da wie in Ihrem Fall. Wenn es nicht für Sie geeignet sein, die "unschöne" Lösung, die diesem Anspruch gerecht werden sollte setInterval(function(){}, delay)
Ansonsten siehe Sean Hogan post oben.
InformationsquelleAutor der Antwort user1700099
Die Lösung von @Filip ist in der Nähe (und möglicherweise gearbeitet haben, zu der Zeit), aber jetzt zu verlangen, die Lieferung der alt Attribut-Wert.
So, die Sie ändern wollen :
:
Andernfalls werden Sie nicht sehen, die oldValues (erhalten Sie null statt.) Getestet wurde dies in Chrome 34.0.1847.131 (Offizieller Build 265687) m.
InformationsquelleAutor der Antwort user1055892