Estoy escribiendo un script que necesita agregar elementos DOM a la página, en el lugar donde se encuentra el script (enfoque tipo widget). ¿Cuál es la mejor manera de hacer esto?Método recomendado para ubicar el script actual?
Estas son las técnicas que estoy considerando:
- incluir un elemento con un id = "localizador" justo encima de la secuencia de comandos. Problemas:
- que no me gusta el marcado adicional
- Si reutilizar el widget en la página, varios elementos tendrán el mismo id "localizador". Estaba pensando en agregar una línea en la secuencia de comandos para eliminar la identificación una vez utilizada, pero aún así ...
- Agregue una identificación a la secuencia de comandos. Problemas:
- a pesar de que parece que funciona, el atributo id no es válido para el elemento de script
- mismo problema que el anterior, varios elementos tendrán el mismo id si volver a utilizar el script en la página.
- Use getElementsByTagName ("script") y elija el último elemento. Esto me ha funcionado hasta ahora, parece un poco pesado y no estoy seguro de si es confiable (pensando en los guiones diferidos)
document.write: no es elegante, pero parece hacer el trabajo.
[Editar] Sobre la base de la respuesta de idealmachine, estoy pensando en una opción más:
- Incluir en la etiqueta script un atributo, por ejemplo meta = "tabify".
- Use getElementsByTagName ("script") para obtener todos los scripts.
- Pasa por las secuencias de comandos y marca el objetivo = "tabify" para encontrar mi script.
- Elimina el atributo objetivo en caso de que haya otro widget en la página.
[Editar] Otra idea, también inspirada en las respuestas hasta el momento:
- Uso getElementsByTagName ("script") para obtener todos los guiones.
- Pasa por las secuencias de comandos y comprueba innerHTML para encontrar mi secuencia de comandos.
- Al final del script, elimine la etiqueta del script en caso de que haya otro widget en la página.
bien, "pesado" en comparación con una directa getElementById. Pero entiendo tu punto, no es gran cosa. – Christophe