Removendo a propriedade do DOM "translate" do Chrome
Eu estou trabalhando com algum código legado, onde os desenvolvedores originais fizeram uso pesado de gerar nós DOM HTML com um atributo não-padrão chamadotranslate
<span translate="[{"shown":"My Account","translated":"My Account","original":"My Account","location":"Text","scope":"Mage_Customer"}]">My Account</span>
e, em seguida, percorrendo / procurando por esses nós com código javascript como o seguinte.
if (!$(target).match('*[translate]')) {
target = target.up('*[translate]');
}
O problema que estou tentando resolver é, parece que o Google Chromeautomaticamente adiciona umtranslate
atributo para cada nó DOM no documento, e que o valor deste nó DOM é um booleanotrue
. Você pode ver isso executando o seguinte JavaScript no console javascript do Chrome
> document.getElementsByTagName('p')[0].translate
true
>
Existe alguma maneira de dizer ao Chromenão preencher esses atributos? Sua presença está prejudicando o código legado. PrototypeJS'smatch
eup
nós tratam esses atributos de objetos booleanos como correspondências, enquanto o código com o qual estou lidando está procurando especificamente nós DOM com um atributo denominado translate. Eu gostaria de encontrar uma solução para o meu problema que não envolvesse reescrever o Javascript antigo para usar métodos comohasAttribute
.
Eu tentei (como um palpite) adicionar ometa
atributos mencionados emEste artigo,
<meta name=”google” value=”notranslate”>
<meta name=”google” content=”notranslate”>
mas os nós na página ainda tem um booleanotrue
traduzir atributo.
(se importa, este é o sistema de tradução em linha do Magento que eu estou falando aqui)