Entfernen der "translate" -DOM-Eigenschaft von Chrome

Ich arbeite mit einem Legacy-Code, bei dem die ursprünglichen Entwickler das Generieren von HTML-DOM-Knoten mit einem nicht standardmäßigen Attribut namens intensiv genutzt habentranslate

<span translate="[{&quot;shown&quot;:&quot;My Account&quot;,&quot;translated&quot;:&quot;My Account&quot;,&quot;original&quot;:&quot;My Account&quot;,&quot;location&quot;:&quot;Text&quot;,&quot;scope&quot;:&quot;Mage_Customer&quot;}]">My Account</span>

und dann überqueren / suchen nach diesen Knoten mit Javascript-Code wie folgt.

if (!$(target).match('*[translate]')) {
    target = target.up('*[translate]');
}

Das Problem, das ich zu lösen versuche, scheint, dass Google Chromeautomatisch fügt eintranslate Attribut für jeden DOM-Knoten im Dokument und dass der Wert dieses DOM-Knotens ein Boolescher Wert isttrue. Sie können dies sehen, indem Sie das folgende Javascript in der Javascript-Konsole von Chrome ausführen

> document.getElementsByTagName('p')[0].translate
true
>

Gibt es sowieso Chrome zu erzählennicht diese Attribute ausfüllen? Ihre Anwesenheit verwüstet den Legacy-Code. PrototypeJS'smatch undup Knoten behandeln diese booleschen Objektattribute als Übereinstimmungen, während der Code, mit dem ich mich befasse, speziell nach DOM-Knoten mit einem Attribut namens translate sucht. Ich möchte eine Lösung für mein Problem finden, bei der das alte Javascript nicht neu geschrieben werden muss, um Methoden wiehasAttribute.

Ich habe versucht (als eine wilde Vermutung) das hinzuzufügenmeta Attribute erwähnt inDieser Beitrag,

<meta name=”google” value=”notranslate”>
<meta name=”google” content=”notranslate”>

Die Knoten auf der Seite haben jedoch immer noch einen Booleschen Werttrue Attribut übersetzen.

(Wenn es darauf ankommt, ist dies das Inline-Übersetzungssystem von Magento, über das ich hier spreche.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage