javascript - pro - tampermonkey scripts
¿Cuál es la diferencia entre @include y @match en userscripts? (1)
No puedes usar expresiones regulares con @match, mientras que can con @include.
Sin embargo, @include dará a sus usuarios advertencias de seguridad más alarmantes sobre la aplicación del script en todos los sitios.
Esto es así aunque una expresión @include le permite ser más restrictivo con respecto a los sitios a los que se aplica un script (por ejemplo, especificar que parte de una URL sea numérica utilizando el fragmento de expresión regular "[0-9] +", o usando "^ https? : // "para aplicar a una secuencia de comandos solo esos dos esquemas, en lugar del operador de globo no regex más general * utilizado para cada uno de esos casos en @match, lo que hace que la secuencia de comandos se aplique de manera más amplia).
La página GreaseSpot en bloques de metadatos dice que los dos son muy similares, pero @match
"establece reglas más estrictas sobre lo que significa el carácter *
". Luego, GreaseSpot continúa teach uso de @include
, pero los ejemplos de Chrome como this parecen usar @match
e indican que @include
solo se admite por motivos de compatibilidad; Se prefiere @match
.
this , @include google.*
Puede ejecutarse en google.evil.com mientras que @match google.*
No puede ejecutarse.
Ese ejemplo no es suficiente para ver realmente cómo los comodines se comportan de manera diferente entre estos dos, y aquí se buscan mejores explicaciones en las respuestas.
Los nuevos scripts de GreaseMonkey (Firefox) usan @include
por defecto mientras que los nuevos scripts de TamperMonkey (por ejemplo, Chrome) usan @match
por defecto.
¿Cuáles son exactamente las diferencias entre estos dos?
Por ejemplo, ¿cómo maneja cada uno los comodines?
¿Hay diferencias en la compatibilidad entre navegadores?
¿Qué razones tendría alguien para elegir usar una sobre la otra?