Eliminando la propiedad DOM de "traducir" de Chrome
Estoy trabajando con un código heredado donde los desarrolladores originales hicieron un uso intensivo de la generación de nodos DOM de HTML con un atributo no estándar llamadotranslate
<span translate="[{"shown":"My Account","translated":"My Account","original":"My Account","location":"Text","scope":"Mage_Customer"}]">My Account</span>
y luego atravesar / buscar esos nodos con código javascript como el siguiente.
if (!$(target).match('*[translate]')) {
target = target.up('*[translate]');
}
El problema que estoy tratando de resolver es que parece que Google Chromeautomáticamente agrega untranslate
atributo a cada nodo DOM en el documento, y que el valor de este nodo DOM es un valor booleanotrue
. Puedes ver esto ejecutando el siguiente Javascript desde la consola javascript de Chrome
> document.getElementsByTagName('p')[0].translate
true
>
¿Hay alguna manera de decirle a Chrome?no ¿Para poblar estos atributos? Su presencia está causando estragos en el código legado. PrototypeJS'smatch
yup
los nodos tratan estos atributos de objetos booleanos como coincidencias, mientras que el código con el que estoy tratando busca específicamente nodos DOM con un atributo llamado traducir. Me gustaría encontrar una solución para mi problema que no implique volver a escribir el Javascript antiguo para usar métodos comohasAttribute
.
Intenté (como una suposición salvaje) añadiendo elmeta
atributos mencionados enEste artículo,
<meta name=”google” value=”notranslate”>
<meta name=”google” content=”notranslate”>
pero los nodos en la página todavía tienen un valor booleanotrue
traducir atributo.
(Si importa, este es el sistema de traducción en línea de Magento del que estoy hablando aquí)