5
Está ejecutándose algo como:¿Qué tan seguro es usar document.body.innerHTML.replace?
document.body.innerHTML = document.body.innerHTML.replace ('valor antiguo', 'nuevo valor')
peligroso?
Me preocupa que tal vez algunos navegadores pueden arruinar toda la página, y dado que este es el código JS que se colocará en sitios fuera de mi control, ¿quién podría ser visitado por quién sabe qué navegadores? Soy un poco preocupado.
Mi objetivo es solo buscar una aparición de una cadena en todo el cuerpo y reemplazarla.
No soy 100% positivo, pero ¿no eliminaría esto también los controladores de eventos vinculados a los elementos HTML del cuerpo? Quiero decir, podría ser lo suficientemente inteligente como para no volver a analizar todo el cuerpo de nuevo, pero ¿y si el cuerpo tiene una etiqueta '
Estoy de acuerdo con lucideer, debe encontrar el nodo que contiene el texto que está buscando, y luego hacer un reemplazo. Los marcos de JS lo hacen muy fácil. jQuery por ejemplo, tiene la poderosa : contiene ('su texto') selector de
http://api.jquery.com/contains-selector/
Fuente
2010-07-23 17:03:04
Si desea oscilar solución sólida, que debe iterar sobre DOM y encontrar el valor para reemplazar esa manera.
Sin embargo,, si el 'valor anterior' es una cadena larga que nunca podría mezclarse con la etiqueta, el atributo o el valor de atributo, está relativamente seguro con solo reemplazar.
Fuente
2010-07-23 17:03:48 vava
Iterar todo el DOM es extremadamente ineficiente. – lucideer
No es * que * ineficiente. No todo el código se ejecuta dentro de bucles anidados y temporizadores de 10 ms. – MooGoo