google chrome extension - greasyfork - Userscripts vs. Chrome Extension
tampermonkey scripts (3)
El caso para escribir (¡y compartir!) Los scripts de los usuarios: siempre que solo use las API DOM del navegador, su script puede ser recogido y ejecutado para que se ejecute (a menudo solo se instala sin editar) por cualquier persona que use otro script de usuario navegador capaz
El caso en contra de ellos, cuando usas Google Chrome, es que a partir de Chrome 21, la instalación se hizo ridículamente complicada: debes hacer clic derecho en el enlace de instalación, guardarlo en el disco, abrir la página de extensiones y arrastrar el script guardado allí. (sí), o instale TamperMonkey desde Chrome Web Store (es gratis, y hace para Chrome esencialmente lo que Greasemonkey hace para Firefox: le da a la instalación de secuencias de comandos y al mantenimiento del usuario una interfaz de usuario soportable).
Si bien solo necesita hacer las cosas que enumera, es posible que no necesite un acceso de API más privilegiado que el que el usuario le brinda de forma nativa: intente ejecutar el código XMLHttpRequest que escribiría para el script en la consola de devtools cuando esté en otro sitio y Veré si es suficiente para tus necesidades o no. En la actualidad, muchas API web permiten el soporte de CORS, lo que podría evitar que su caso de uso tenga que recurrir a las API de extensión propietarias del navegador.
Estoy desarrollando una extensión que leerá el valor de los elementos HTML, luego realizaré llamadas a un sitio web externo, obtendrá los resultados y los mostrará en los elementos HTML recién creados.
¿Cuáles son las ventajas y desventajas de escribirlo en las extensiones nativas de Chrome frente a los scripts de usuarios?
Hay algunas diferencias entre una extensión nativa de Chrome y un script de usuario.
Consulte esta sección de wiki para obtener una lista de las diferencias entre los scripts de Greasemonkey y los scripts de Chrome.
Si desea aprovechar los scripts de usuario de GM_*
navegadores, intente no utilizar los métodos GM_*
o unsafeWindow
.
Desde la perspectiva de un desarrollador, no hay ninguna ventaja de preferir los scripts de usuario o las extensiones de Chrome, porque cualquier script de usuario se puede incrustar fácilmente en una extensión de Chrome.
Si ve este tema a la luz de la implementación, entonces las diferencias son significativas:
- La instalación con un clic solo está disponible en Chrome Web Store. Sólo extensiones nativas.
- Tanto los scripts de usuario como las extensiones nativas se pueden arrastrar desde el explorador de archivos local a la página de Extensiones para instalar la extensión.
(Los scripts de los usuarios se convierten en extensiones de Chrome; advertencia: consulte a continuación) - El soporte de script de usuario nativo dejará de funcionar a fines de 2013, porque los scripts de usuario convertidos utilizan la versión 1 de manifiesto, que ha quedado en desuso .
Conclusión
Recomiendo desarrollar extensiones nativas. Puede crear fácilmente una extensión de Chrome a partir de un script de usuario utilizando la siguiente estructura de directorios:
manifest.json
whatever.user.js
Mínimo manifest.json:
{
"name": "name of extension",
"version": "1",
"manifest_version": 2,
"content_scripts": [{
"js": ["whatever.user.js"],
"matches": ["http://example.com/*"]
}]
}
Ver también
Los scripts de usuario (es decir, los scripts de Greasemonkey) instalados directamente con Chrome finalmente se convierten automáticamente en extensiones con scripts de contenido, por lo que son prácticamente los mismos. Los scripts de usuario son rápidos y fáciles de escribir, y un buen script de usuario puede admitirse en otros navegadores. Sin embargo, existen varias limitaciones para los scripts de usuario en Chrome. No pueden leer o escribir directamente variables desde páginas web (solo se comparte el DOM estándar). No pueden hacer XHR de origen cruzado. Por el contrario, las extensiones son mucho más poderosas pero más difíciles de desarrollar.
Parece que tendrás que escribir una extensión de Chrome ya que necesitas ''hacer llamadas API a un sitio web externo ''.