Social BrowserProfiles, IA y automatización

User Scripts · Aprende cambiando páginas reales

Haga que los sitios web funcionen un poco más como usted desea.

Un User Script es un pequeño fragmento de código que se ejecuta dentro de páginas web coincidentes. Comience con unas pocas líneas, realice un cambio útil y luego aprenda JavaScript solo cuando lo necesite.

Apto para principiantesPractica en cada lecciónJavaScript, CSS y HTMLIntegrado en Social BrowserFunciona con automatización de IA
¿Nunca escribiste un guión?Comienza con la Lección 1. Te explicamos el JavaScript mínimo que necesitas.
¿Ya utilizas scripts estilo Tampermonkey?Vaya a metadatos, coincidencias, alcance y Social Browser Profiles.
¿Quieres flujos de trabajo completos?Usa User Scripts junto a Automation Studio y workflows de IA mediante MCP AI.

Ejemplos de trabajo

Copia un pequeño guión. Ver el cambio de página.

Comience con mejoras de página inofensivas. Cada ejemplo es intencionalmente pequeño para que puedas entender cada línea antes de usarlo.

Aprenda a crear un script →
Arrancador · JavaScript

Destacar un valor importante

Encuentra un elemento y hazlo más fácil de notar.

Ejemplo
const total = document.querySelector('.total');if (total) { total.style.background = '#fff3a6'; total.style.fontWeight = '700';}

Úselo para: paneles, totales, etiquetas de estado o páginas de control de calidad que usted controle.

Aprenda el JavaScript
Arrancador · CSS

Ocultar una barra lateral que distraiga

A veces, todo lo que necesita es una regla CSS.

Ejemplo CSS
.promo-sidebar { display: none !important;}

Úselo para: Paneles internos más limpios o páginas que revisa repetidamente.

Aprenda CSS y HTML
Constructor · JavaScript

Agregar un botón Copiar al lado de un valor

Cree un pequeño ayudante en lugar de repetir los pasos de copiar y pegar manualmente.

Ejemplo
const value = document.querySelector('#order-id');if (value) { const button = document.createElement('button'); button.textContent = 'Copy'; button.onclick = () => navigator.clipboard.writeText(value.textContent.trim()); value.after(button);}

Úselo para: ID, referencias o valores no confidenciales que copia con frecuencia.

Aprender eventos
Reaccionar · Páginas dinámicas

Espere el contenido que aparece más tarde.

Las páginas modernas suelen renderizarse después de la primera carga. Observa sólo lo que necesitas.

Ejemplo
const observer = new MutationObserver(() => { const result = document.querySelector('.result-ready'); if (!result) return; result.style.outline = '2px solid #4caf50'; observer.disconnect();});observer.observe(document.body, { childList: true, subtree: true });

Úselo para: Paneles de SPA y widgets de página retrasados.

Aprender páginas dinámicas
Integrar · Profiles

Utilice el mismo ayudante en Profiles por separado

El script sigue siendo reutilizable mientras cada Profile mantiene su propia sesión de navegador y estado de página.

Mismo guión→Profile A+Profile B+Profile C
  1. Crea un pequeño guión.
  2. Haga coincidir solo el sitio deseado.
  3. Abra el sitio en una prueba diferente Profiles.
  4. Confirme que el ayudante se comporte correctamente en cada contexto.
Aprender guiones + Profiles
Avanzado · Elige la herramienta

User Script + Automation Studio

Mantenga los asistentes de página persistentes en User Script y la orquestación de varios pasos en Automation Studio.

User Script+Flujo de trabajo→Proceso reutilizable
  1. User Script mejora la página de coincidencias.
  2. Workflow realiza pasos ordenados del navegador.
  3. La automatización selecciona Profiles y la política de ejecución.
  4. La tarea decide cuándo ejecutarse.
Aprende cuándo combinarlos
Antes de ejecutar código desde Internet: léalo, comprenda con qué páginas coincide, verifique el comportamiento del almacenamiento/red y pruébelo en un Profile controlado. Estos ejemplos evitan intencionalmente contraseñas, cookies y datos de sesión.

Biblioteca de ejemplos GM API

Recetas genéticamente modificadas útiles que puedes copiar, leer y adaptar.

Cada ejemplo es intencionalmente pequeño. Comience con un problema, copie el script, lea cada línea y luego cambie solo los selectores, URLs o etiquetas que comprenda.

Abra la guía completa de GM API →
¿Recuerdas un escenario? Almacenamiento¿Leer otro origen? Red¿Agregar un asistente de página? Ayudantes de página¿Agregar una acción de usuario? Comandos de menú¿Alertar al usuario? Notificaciones¿Guardar un archivo? Descargas
Inicio · Almacenamiento

Recuerde una preferencia de modo compacto

Guarde una preferencia de interfaz de usuario inofensiva y restáurela en la siguiente carga de la página.

JavaScript · preferencia persistente
// ==UserScript==// @name Compact mode preference// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const compact = GM_getValue('compact', false);document.documentElement.classList.toggle('my-compact-mode', compact); const button = document.createElement('button');button.textContent = compact ? 'Use normal mode' : 'Use compact mode';button.addEventListener('click', () => { GM_setValue('compact', !compact); location.reload();});document.body.prepend(button);
Aprenda el almacenamiento GM
Constructor · Ayudante de página

Agregar un pequeño panel auxiliar

Inyecte CSS y un elemento auxiliar sin reemplazar el diseño del sitio web.

JavaScript · GM_addStyle + GM_addElement
// @grant GM_addStyle// @grant GM_addElement GM_addStyle(` .sb-helper { position: fixed; right: 16px; bottom: 16px; padding: 10px 12px; background: #111827; color: white; border-radius: 8px; z-index: 2147483647; }`); GM_addElement(document.body, 'div', { class: 'sb-helper', textContent: 'Page helper is active'});
Ayudantes de la página de aprendizaje
Constructor · Red

Leer JSON desde un API permitido

Utilice una solicitud privilegiada cuando los datos que necesita no formen parte de la página actual.

JavaScript · GM_xmlhttpRequest
// ==UserScript==// @name API status helper// @match https://example.com/*// @grant GM_xmlhttpRequest// @connect api.example.com// ==/UserScript== GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', onload(response) { console.log('Status:', response.response?.status); }, onerror(error) { console.error('Request failed:', error); }});
Aprenda solicitudes privilegiadas
Reaccionar · Portapapeles

Copiar una referencia de página de forma segura

Copie un valor no confidencial después de un clic explícito del usuario.

JavaScript · GM_setPortapapeles
// @grant GM_setClipboard const reference = document.querySelector('#reference-id');if (reference) { const copyButton = document.createElement('button'); copyButton.textContent = 'Copy reference'; copyButton.addEventListener('click', () => { GM_setClipboard(reference.textContent.trim(), 'text'); copyButton.textContent = 'Copied'; }); reference.after(copyButton);}
Aprenda el acceso al portapapeles
Reaccionar · Comando de menú

Agregar una acción de script al menú User Script

Mantenga las acciones opcionales fuera de la interfaz de usuario de la página y ejecútelas solo cuando el usuario lo solicite.

JavaScript · GM_registerMenuCommand
// @grant GM_registerMenuCommand GM_registerMenuCommand('Highlight overdue rows', () => { document.querySelectorAll('[data-status="overdue"]').forEach(row => { row.style.outline = '2px solid currentColor'; });});
Aprenda los comandos del menú
Integrar · Notificación

Notificar cuando una tarea de página larga esté lista

Muestra una notificación del navegador solo para un evento significativo.

JavaScript · GM_notificación
// @grant GM_notification function notifyReady(label) { GM_notification({ title: 'Social Browser User Script', text: `${label} is ready to review`, timeout: 5000 });} // Call this only after your script detects the result.notifyReady('The report');
Aprender notificaciones
Integrar · Pestañas

Abrir una página relacionada en una pestaña de fondo

Abra información de respaldo sin reemplazar la página que el usuario está revisando.

JavaScript · GM_openInTab
// @grant GM_openInTab const helpButton = document.createElement('button');helpButton.textContent = 'Open details';helpButton.addEventListener('click', () => { GM_openInTab('https://example.com/details', { active: false, insert: true });});document.body.prepend(helpButton);
Pestaña de aprendizaje APIs
Avanzado · Estado de pestaña

Recordar el progreso de una pestaña del navegador

Mantenga el estado del script temporal adjunto a la pestaña actual en lugar del almacenamiento global.

JavaScript · GM_getTab + GM_saveTab
// @grant GM_getTab// @grant GM_saveTab GM_getTab(tabState => { tabState.reviewStep = (tabState.reviewStep || 0) + 1; GM_saveTab(tabState); console.log('Review step:', tabState.reviewStep);});
Aprenda el estado por pestaña
Avanzado · Descargar

Descargar un archivo de informe

Utilice la capacidad de descarga para un archivo que el usuario le pidió intencionalmente al script que guardara.

JavaScript · GM_descargar
// @grant GM_download GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv', saveAs: true, onload() { console.log('Download completed'); }, onerror(error) { console.error('Download failed:', error); }});
Aprende descargas
Avanzado · Recurso

Combine un pequeño recurso de texto con un guión

Haga referencia a un recurso declarado en lugar de codificar un recurso de texto reutilizable de gran tamaño.

JavaScript · @resource + GM_getResourceText
// ==UserScript==// @name Template resource example// @match https://example.com/*// @resource helperTemplate https://example.com/assets/helper.html// @grant GM_getResourceText// ==/UserScript== const template = GM_getResourceText('helperTemplate');if (template) { const box = document.createElement('div'); box.innerHTML = template; document.body.append(box);}
Aprender recursos
Antes de ejecutar el código copiadoLéelo, reduce su @match reglas, revisar cada @grant and @connecty pruébelo primero en un Profile seguro.
Curso User ScriptsResumen del curso
Elige una lección o comienza el curso guiado.
Inicial · Lección 1

Qué es realmente un User Script

tiempo 5 minutosObjetivo Comprenda lo que User Scripts puede cambiar

Un User Script es un JavaScript que el navegador ejecuta automáticamente en las páginas que coinciden con las reglas que usted elija. Puede realizar pequeños cambios en un sitio web después de que se abre la página: resaltar información, agregar un acceso directo, ocultar el desorden, ayudar a un formulario repetido o reaccionar a eventos de la página.

sin guion

  1. Abre la página.
  2. Haga el mismo pequeño ajuste.
  3. Repítelo en la próxima visita.

Con un User Script

  1. Crea la regla una vez.
  2. Limítelo a las páginas correctas.
  3. Deje que se ejecute automáticamente cuando se abran esas páginas.

Por qué los User Scripts son útiles dentro de Social Browser

Social Browser combina User Scripts con el navegador persistente Profiles. Un Profile puede mantener su propia sesión, almacenamiento, configuración y scripts, por lo que una pequeña personalización puede permanecer cerca del contexto del navegador donde realmente lo usa.

Importante: Un User Script ejecuta código dentro de páginas web. Instale scripts sólo de fuentes que comprenda y en las que confíe. Un script útil debe ser fácil de leer, limitado a las páginas que necesita y fácil de desactivar.
Inicial · Lección 2

Crea tu primer User Script

tiempo 5 a 10 minutosObjetivo Ejecute un pequeño script y vea un cambio de página

Comience con algo inofensivo y visible. El objetivo es probar el flujo completo: crear → guardar → habilitar → abrir una página coincidente → ver el resultado.

1

Abrir User Scripts

Abra el administrador User Script integrado en Social Browser y cree un nuevo script.

2

Dale un nombre claro

Utilice un nombre que diga lo que hace el script, como por ejemplo Highlight Test Heading.

3

Elija una página de prueba segura

Utilice una página que usted controle o una página inofensiva donde cambiar la visualización no enviará datos ni cambiará una cuenta.

4

Agregue algunas líneas de JavaScript

const heading = document.querySelector('h1');if (heading) heading.style.outline = '3px solid currentColor';
5

Guárdalo y habilítalo

Vuelva a cargar la página correspondiente. Si el título tiene un esquema, su primer guión está funcionando.

Regla para principiantes: Un guión, un resultado visible. No empiece copiando un guión de 500 líneas que no pueda explicar.
Inicial · Lección 3

Haga que el script se ejecute solo donde pertenece

tiempo 5 minutosObjetivo Utilice las reglas URL permitidas y excluidas de forma segura

La coincidencia de páginas es una de las habilidades más importantes de User Script. Un script que debería personalizar un panel no necesita permiso para ejecutarse en cada sitio web que visite.

1

Permitido URLs

Describe las páginas donde el guión es útil.

2

Excluido URLs

Bloquee las páginas dentro de esa área donde el script debería permanecer inactivo.

3

Prueba ambos lados

Abra una página que coincida y una página que no coincida antes de confiar en la regla.

Etapa 1 completaSi su secuencia de comandos se ejecuta solo en la página que deseaba, está listo para crear algo útil.
Constructor · Lección 4

El JavaScript que realmente necesitas primero

tiempo 10 minutosObjetivo Leer y cambiar elementos de página simples

No necesita todo el lenguaje JavaScript para que User Scripts sea útil. Comience con cuatro ideas: encontrar un elemento, leer un valor, cambiar algo y responder a un evento.

necesidadSencillo JavaScript
Encuentra un elementodocument.querySelector('.price')
Leer su textoelement.textContent
Cambiar textoelement.textContent = 'Done'
cambiar un estiloelement.style.fontWeight = '700'
Reaccionar a un clicbutton.addEventListener('click', handler)

Siempre verifique que un elemento exista antes de usarlo. Los sitios web cambian y un elemento faltante no debería bloquear todo el script.

Constructor · Lección 5

Utilice JavaScript, CSS y HTML para diferentes trabajos

tiempo 8 minutosObjetivo Elija la herramienta más sencilla para un cambio de página
JS

JavaScript

Úselo para lógica, eventos, lectura de valores y cambio de comportamiento.

CSS

CSS

Úselo para la apariencia: oculte, cambie el tamaño, resalte o reorganice elementos visuales.

HTML

HTML

Úselo cuando el script necesite un pequeño panel, etiqueta o control auxiliar.

Mantenga pequeños los cambios de página: Agregar un cuadro auxiliar es más fácil de mantener que reconstruir la interfaz de un sitio web dentro de un script.
Constructor · Lección 6

Utilice el Administrador de secuencias de comandos integrado

tiempo 7 minutosObjetivo Cree, busque, habilite y edite scripts con confianza

El Administrador de secuencias de comandos es donde las secuencias de comandos reutilizables deben permanecer organizadas. Utilice nombres claros, mantenga los experimentos deshabilitados separados de los scripts en funcionamiento y facilite la desactivación de un script cuando esté depurando una página.

  • Crea y edita un script.
  • Búscalo o identifícalo por un nombre claro.
  • Habilítelo o deshabilítelo sin eliminarlo.
  • Revise las reglas JavaScript, CSS, HTML y URL juntas.
  • Mantenga los scripts experimentales visiblemente nombrados como pruebas.
Constructor · Lección 7

Importe scripts sin tratar Internet como código confiable

tiempo 8 minutosObjetivo Importar desde un archivo o URL y revisar antes de habilitar

Social Browser puede crear scripts manualmente o importarlos desde un archivo o URL directo. También puede reconocer flujos de instalación comunes de User Script. Importar es conveniente, pero conveniencia no es lo mismo que confianza.

1

Conozca la fuente

Prefiere el código que hayas escrito, que sea propiedad de tu equipo o una fuente que puedas verificar.

2

Leer los metadatos

Verifique el nombre, coincida con URLs y el comportamiento de ejecución.

3

Revisa el código

Busque solicitudes de red inesperadas, acciones de formularios ocultos, acceso al almacenamiento o coincidencias amplias de páginas.

4

Prueba en un Profile seguro

Habilítelo en una página controlada antes de usarlo en una sesión importante del navegador.

Constructor · Lección 8

Los metadatos le dicen al navegador cómo debe ejecutarse el script.

tiempo 8 minutosObjetivo Comprender la configuración del código

Un User Script útil es más que un JavaScript. Social Browser puede utilizar información del script como el título/nombre, URLs permitido y excluido, visibilidad del menú, alcance de ventana/marco, ejecución automática y ejecución en etapa de precarga.

ConfiguraciónPregunta que responde
Nombre/título¿Qué hace este guión?
Permitido URLs¿Dónde puede correr?
Excluido URLs¿Adónde no debe correr?
Alcance de ventana/marco¿Qué contexto de documento debería recibirlo?
Ejecución automática¿Debería ejecutarse sin una acción de menú manual?
Etapa de precarga¿Es necesario comenzar antes en la carga de la página?
Visibilidad del menú¿Debería el usuario poder activarlo desde el menú del script?
Reaccionar · Lección 9

Reaccionar a la página en lugar de revisarla constantemente

tiempo 8 minutosObjetivo Utilice eventos DOM para interacciones simples

Las páginas ya producen eventos: clics, cambios de entrada, enfoque, navegación y más. Escuchar el evento que necesita suele ser más limpio que ejecutar un bucle rápido que revisa toda la página una y otra vez.

const button = document.querySelector('#save');button?.addEventListener('click', () => { console.log('Save button clicked');});
Regla de desempeño: Prefiera un evento o un observador limitado a un cronómetro permanente de alta frecuencia.
Reaccionar · Lección 10

Manejar páginas que cambian después de cargarse

tiempo 10 minutosObjetivo Trabajar con elementos retrasados y renderizados nuevamente

Los sitios web modernos suelen mostrar el contenido después de cargar la primera página. Si su elemento de destino aún no existe, el script puede esperarlo u observar una parte específica de la página para detectar cambios.

Evite largas demoras arbitrarias. Esperar cinco segundos en todas partes puede ocultar el problema, pero hace que los scripts sean lentos y poco fiables. Espere lo que realmente necesita y deje de esperar después de un límite razonable.
Reaccionar · Lección 11

Guarda pequeñas preferencias, no secretos

tiempo 7 minutosObjetivo Recuerde configuraciones de script inofensivas

Es posible que un script necesite recordar una preferencia inofensiva, como si un panel auxiliar está contraído o qué modo de visualización seleccionó. El almacenamiento del navegador puede ayudar, pero la información confidencial de la cuenta, las contraseñas, los secretos 2FA y el material de la sesión no deben almacenarse casualmente dentro de los scripts.

Buenos datos de preferencia

  • Panel abierto/cerrado.
  • Filas por página.
  • Opción de visualización.

Tratar como sensible

  • Contraseñas.
  • Secretos 2FA.
  • Material de sesión/cookies.
Reaccionar · Lección 12

Lea primero los datos de la página; solicitar otros datos sólo cuando sea necesario

tiempo 8 minutosObjetivo Mantenga el acceso a los datos simple y comprensible

Si la información ya está en la página, léala desde el DOM. Si su secuencia de comandos realmente necesita otro recurso web, las reglas normales de red del navegador siguen siendo importantes. Mantenga las solicitudes visibles en su código y evite enviar datos de página/cuenta a algún lugar que el usuario no esperaba.

Regla sencilla: if the script sends data away from the page, a reviewer should be able to see exactly what is sent and why.
Integrar · Lección 13

User Scripts se vuelve más útil con Profiles persistente

tiempo 8 minutosObjetivo Comprender el comportamiento de los scripts dentro de contextos de navegador separados

Un Social Browser Profile mantiene su propio contexto de navegador. Eso significa que puede mantener separadas las sesiones de la cuenta y el estado de la página mientras reutiliza la misma idea de secuencia de comandos cuando corresponda. Pruebe un script en el contexto Profile específico donde realmente se ejecutará.

Perfil→Página coincidente→User Script→Mejora de página pequeña

No asuma que un script que funciona en un estado de sitio web funcionará automáticamente en cada Profile. Diferentes sesiones pueden mostrar diferentes diseños, permisos o contenido.

Integrar · Lección 14

Fotogramas y sincronización: ejecute el documento correcto en el momento adecuado

tiempo 10 minutosObjetivo Elija deliberadamente el alcance y el momento de ejecución

Una página puede contener el documento principal más uno o más marcos. Un script también puede necesitar una ejecución automática normal o una etapa de precarga anterior. Estas opciones resuelven diferentes problemas, así que no las cambie todas cuando falte un elemento.

Alcance

¿Página principal o marco?

Identifique qué documento contiene realmente el elemento.

Sincronización

¿Normal o precarga?

Comience temprano solo cuando el script realmente necesite afectar la inicialización.

Dinámico

¿Renderizado más tarde?

Si la página crea el elemento más tarde, maneje el contenido dinámico en lugar de cambiar el alcance a ciegas.

Integrar · Lección 15

Depurar un User Script sin adivinar

tiempo 10 minutosObjetivo Descubra si el problema es la coincidencia, el tiempo, el código o el sitio web
1

Confirme que el script esté habilitado

No depures código que esté actualmente deshabilitado.

2

Confirmar las coincidencias URL

Verifique las reglas permitidas y excluidas.

3

Agregar mensajes claros de la consola

Registre cuando se inicie el script y antes de la operación que está probando.

4

Verifique el elemento objetivo

Vea si existe todavía y si la página lo volvió a representar.

5

Deshabilitar el script y comparar.

Si el problema de la página persiste después de desactivarla, es posible que el script no sea la causa.

Etapa 4 completaAhora puede crear, analizar y depurar User Scripts normal dentro de Social Browser.
Avanzado · Lección 16

Escriba scripts en los que sea fácil confiar y mantener

tiempo 10 minutosObjetivo Reducir el acceso innecesario y el comportamiento oculto
  • Haga coincidir solo las páginas que necesita el guión.
  • Utilice nombres y comentarios claros para comportamientos no obvios.
  • Mantenga los destinos de red visibles en el código.
  • Evite almacenar información confidencial de la cuenta.
  • Detenga a los observadores y cronómetros cuando ya no sean necesarios.
  • No oculte efectos secundarios importantes detrás de vagas funciones auxiliares.
  • Pruebe los cambios en un Profile seguro antes de sesiones importantes.
  • Mantenga una forma rápida de desactivar el script.
Avanzado · Lección 17

Recetas prácticas User Script

tiempo 15 minutosObjetivo Empezar desde pequeños patrones reutilizables
Receta 1 · Resalta los valores importantesprincipiante
  1. Coincide con una página específica.
  2. Encuentra los elementos de valor.
  3. Agregue una clase o estilo CSS.
  4. No hagas nada si faltan los elementos.
Receta 2 · Agregar un acceso directo a la páginaprincipiante
  1. Crea un pequeño botón auxiliar.
  2. Insértelo cerca del área relevante.
  3. Escuche su clic.
  4. Realice una acción de página local.
Receta 3 · Limpiar un tableroIntermedio
  1. Oculte sólo el desorden visual claramente identificado.
  2. Mantenga intactos los controles de la página principal.
  3. Guarde una preferencia de visualización inofensiva si es útil.
Receta 4 · Ayudar a una forma repetidaIntermedio
  1. Detectar la forma.
  2. Complete solo los valores repetidos no confidenciales que el usuario espera.
  3. Deje la decisión de envío final visible para el usuario a menos que el flujo de trabajo requiera explícitamente automatización.
Receta 5 · Esperar contenido dinámicoIntermedio
  1. Busque una vez el elemento.
  2. Si falta, observe un área principal estrecha.
  3. Deje de observar después de que aparezca el elemento o después de un tiempo de espera.
Avanzado · Lección 18

¿User Script, Automation Studio o ambos?

tiempo 8 minutosObjetivo Elija la herramienta más sencilla para el trabajo
quiero…Comience con…
Cambiar el aspecto o el comportamiento de una página coincidente cada vez que la abroUser Script
Agregue un pequeño asistente de página o un acceso directoUser Script
Ejecute un proceso de navegador ordenado de varios pasosAutomation Studio Workflow
Ejecute el mismo proceso en Profiles o según un cronogramaAutomation Studio
Mantenga una personalización de página útil mientras se ejecuta un Workflow de automatizaciónUser Script + Automation Studio
Necesita una lógica de página personalizada dentro de un flujo de trabajo más amplioUtilice la combinación admitida más simple y mantenga claras las responsabilidades
La buena arquitectura es aburrida: mantenga una personalización de página persistente en un User Script y una orquestación del flujo de trabajo en un Automation Studio. No convierta un script gigante en un sistema de automatización completo si Studio ya proporciona la función de flujo de trabajo.
GM API Referencia

GM API en Social Browser: desde el primer uso hasta scripts avanzados

Usa esto cuando la página simple JavaScript no es suficienteObjetivo Utilice las capacidades de secuencias de comandos a nivel del navegador de forma segura

Los GM API brindan a User Script capacidades que la página normal JavaScript no siempre tiene, como almacenamiento con alcance de script, solicitudes de origen cruzado, notificaciones, descargas, acceso al portapapeles, recursos y comandos de menú de script. En Social Browser, un explícito @grant El script recibe sólo las capacidades que solicita.

Navegue por categoría o busque por nombre API.

Empiece poco a poco: no agregues cada @grant línea "por si acaso". Pregunte sólo por los API que el script realmente utiliza. Eso hace que el guión sea más fácil de entender, revisar y confiar.

Empieza aquí

How @grant funciona

Para scripts nuevos, declare cada API privilegiado que utilice. Social Browser ejecuta scripts con concesiones explícitas en un mundo User Script aislado y une solo las capacidades solicitadas. un guión con @grant none se ejecuta sin capacidades de GM.

JavaScript · guión mínimo concedido
// ==UserScript==// @name Remember display mode// @namespace https://example.com/my-scripts// @match https://example.com/*// @grant GM_getValue// @grant GM_setValue// ==/UserScript== const mode = GM_getValue('displayMode', 'compact');console.log('Saved mode:', mode); GM_setValue('displayMode', 'comfortable');

Clásico GM_* o moderno GM.*?

Social Browser admite los nombres clásicos familiares y sus modernos GM.* forms for the main GM capability set. The modern form is Promise-friendly, so use await. Elija un estilo por guión y sea coherente.

Clásico
JavaScript
const theme = GM_getValue('theme', 'dark');GM_setValue('theme', 'light');
moderno
JavaScript
const theme = await GM.getValue('theme', 'dark');await GM.setValue('theme', 'light');

GM_info / GM.info

Utilice la información del script cuando necesite inspeccionar el script actual, la versión, las concesiones, las coincidencias o la información del tiempo de ejecución de Social Browser. No codifique el comportamiento en torno a las cadenas de versión a menos que realmente necesite lógica de compatibilidad.

JavaScript · inspeccionar metadatos del script
// @grant GM_info console.log('Script:', GM_info.script.name);console.log('Version:', GM_info.version);console.log('Handler:', GM_info.scriptHandler);console.log('Grants:', GM_info.scriptGrants);console.log('Matches:', GM_info.scriptMatches);

Almacenamiento

Recuerde pequeños datos de script

El almacenamiento GM está limitado al User Script en lugar de ser un almacenamiento de páginas normal. Es ideal para preferencias, contadores y estados de script inofensivos. No lo utilice como una bóveda informal para contraseñas, secretos 2FA, cookies o material de sesión.

APIque haceResultado típico
GM_getValue(key, defaultValue)Leer un valor guardado.El valor guardado o su valor predeterminado.
GM_setValue(key, value)Guarde un valor.Actualiza el almacenamiento con ámbito de script.
GM_deleteValue(key)Eliminar un valor.La llave desaparece.
GM_listValues()Lista de claves guardadas.Una serie de nombres clave.
GM_getValues(...)Lean varios valores juntos.Un objeto de valores.
GM_setValues(object)Guarde varios valores juntos.Actualiza cada clave suministrada.
GM_deleteValues(keys)Eliminar varias claves.Elimina los valores enumerados.
JavaScript · guardar preferencias de usuario
// @grant GM_getValue// @grant GM_setValue// @grant GM_deleteValue const settings = GM_getValue('settings', { compact: true, rowsPerPage: 25}); settings.rowsPerPage = 50;GM_setValue('settings', settings); // Reset later if the user asks for defaults.// GM_deleteValue('settings');

Ver un cambio de valor

GM_addValueChangeListener Es útil cuando el mismo script está abierto en más de un marco o pestaña. La devolución de llamada recibe (name, oldValue, newValue, remote). En Social Browser, los eventos de cambio de valor se pueden sincronizar entre marcos/pestañas en la misma sesión Profile.

JavaScript · escucha de almacenamiento
// @grant GM_addValueChangeListener// @grant GM_removeValueChangeListener const listenerId = GM_addValueChangeListener( 'displayMode', (name, oldValue, newValue, remote) => { console.log({ name, oldValue, newValue, remote }); }); // Remove it when you no longer need it.// GM_removeValueChangeListener(listenerId);

Ayudantes de página

Añade estilos o pequeños elementos.

GM_addStyle(css) / GM.addStyle(css)

Utilice esto cuando la personalización de una página sea principalmente visual. Es más limpio que establecer muchos individuos element.style propiedades.

JavaScript · inyectar CSS
// @grant GM_addStyle GM_addStyle(` .important-total { font-weight: 700; outline: 2px solid currentColor; padding: 4px 8px; }`);

GM_addElement(...) / GM.addElement(...)

Cree un pequeño elemento DOM y agréguelo de forma segura. Puede pasar un elemento principal primero u omitirlo para usar el cuerpo de la página.

JavaScript · agregar un botón de ayuda
// @grant GM_addElement const panel = document.querySelector('#account-panel');if (panel) { GM_addElement(panel, 'button', { type: 'button', textContent: 'Copy account ID', className: 'my-copy-button', onclick() { const id = panel.querySelector('.account-id')?.textContent?.trim(); if (id) navigator.clipboard.writeText(id); } });}

Red

Realice solicitudes privilegiadas con GM_xmlhttpRequest

pagina normal fetch() está controlado por las reglas normales del navegador/CORS de la página. La solicitud GM de Social Browser API utiliza un canal de solicitud de proceso de navegador dedicado. Antes de enviar una solicitud, su destino se compara con el del script. @connect reglas.

El acceso a la red merece una revisión. Mantenga los destinos estrechos y visibles. Nunca envíe datos de cuenta/página a un servicio que el usuario no esperaría.
Solicitud JavaScript · JSON
// ==UserScript==// @match https://app.example.com/*// @connect api.example.com// @grant GM_xmlhttpRequest// ==/UserScript== const response = await GM_xmlhttpRequest({ method: 'GET', url: 'https://api.example.com/status', responseType: 'json', timeout: 10000, headers: { Accept: 'application/json' }}); console.log(response.status, response.response);

Devoluciones de llamada y aborto

La solicitud API admite devoluciones de llamadas de solicitudes comunes y devuelve un identificador que se puede cancelar. Utilice un tiempo de espera incluso cuando también apoye el aborto.

JavaScript · devoluciones de llamada + aborto
// @connect api.example.com// @grant GM_xmlhttpRequest const request = GM_xmlhttpRequest({ url: 'https://api.example.com/slow-report', timeout: 15000, onload(response) { console.log('Loaded:', response.status); }, onerror(error) { console.error('Request failed:', error); }, ontimeout() { console.warn('Request timed out'); }, onabort() { console.log('Request aborted'); }}); // Cancel only if your script no longer needs the result.// request.abort();

Forma moderna: GM.xmlHttpRequest(...) and GM.xmlhttpRequest(...) asignar a la misma capacidad de solicitud.

Recursos

Paquete de texto reutilizable, CSS u otros activos

Declarar un activo con @resource, luego léelo por su nombre. GM_getResourceText returns decoded text. GM_getResourceURL returns a data URL that preserves the response MIME type.

JavaScript · @recurso
// ==UserScript==// @resource helperCss https://example.com/assets/helper.css// @grant GM_getResourceText// @grant GM_getResourceURL// ==/UserScript== const css = await GM_getResourceText('helperCss');console.log(css); const dataUrl = await GM_getResourceURL('helperCss');console.log(dataUrl);

Si el nombre del recurso no existe, API devuelve undefined. Mantenga los nombres de los recursos breves y descriptivos.

Ayudantes del navegador

Pestañas, notificaciones y portapapeles

GM_openInTab(url, options)

Abra un URL en una pestaña Social Browser. uso active: false cuando la nueva pestaña debería abrirse sin enfocarse.

JavaScript · abrir una pestaña de fondo
// @grant GM_openInTab GM_openInTab('https://example.com/report', { active: false});

Estado del script por pestaña: GM_getTab, GM_saveTab, GM_getTabs

Estos API almacenan pequeños estados User Script asociados con pestañas. Son útiles cuando un script necesita recordar qué paso o vista pertenece a una pestaña en particular sin mezclarlo con las preferencias globales del script.

JavaScript · recordar el estado de esta pestaña
// @grant GM_getTab// @grant GM_saveTab// @grant GM_getTabs const tabState = await GM_getTab();await GM_saveTab({ ...tabState, lastPanel: 'orders'}); const allScriptTabs = await GM_getTabs();console.log(allScriptTabs);

GM_notification

Muestra una notificación del navegador sobre algo que el usuario realmente debería notar. Evite el spam de notificaciones para actividades rutinarias de secuencias de comandos.

JavaScript · notificación
// @grant GM_notification await GM_notification({ title: 'Report ready', text: 'The page data is ready to review.'});

GM_setClipboard(data, type)

Copie el texto (o HTML cuando se solicite) al portapapeles. Úselo después de una acción clara del usuario cuando sea posible, para que el usuario comprenda por qué cambió su portapapeles.

JavaScript · copiar un valor de página
// @grant GM_setClipboard const orderId = document.querySelector('.order-id')?.textContent?.trim();if (orderId) { GM_setClipboard(orderId, 'text');}

Menús y descargas

Agregar acciones de usuario deliberadas

GM_registerMenuCommand / GM_unregisterMenuCommand

Registre un comando en el menú User Script. Este es un buen patrón para acciones que deberían ocurrir sólo cuando el usuario las solicite explícitamente.

JavaScript · comando de menú
// @grant GM_registerMenuCommand// @grant GM_unregisterMenuCommand const commandId = GM_registerMenuCommand( 'Highlight overdue rows', () => { document.querySelectorAll('.row.overdue').forEach((row) => { row.style.fontWeight = '700'; }); }); // Remove the menu item later if the script no longer needs it.// GM_unregisterMenuCommand(commandId);

GM_download

Inicie una descarga a través de Social Browser. Asigne al archivo un nombre claro y utilícelo solo cuando la descarga sea parte del propósito visible del script.

JavaScript · descargar un archivo
// @grant GM_download await GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv'});

Avanzado

unsafeWindow: puente a páginas globales solo cuando sea necesario

La concesión explícita User Scripts normalmente se ejecuta en un mundo aislado. unsafeWindow es un puente de suscripción voluntaria hacia los elementos globales en el mundo PRINCIPAL de la página. Úselo solo cuando el sitio web exponga una variable de página o función a la que el acceso ordinario a un script aislado no pueda acceder.

Usar estrictamente: Los elementos globales de la página pertenecen al sitio web y pueden cambiar sin previo aviso. Prefiera los DOM API normales cuando resuelvan el problema.
JavaScript · leer una página global
// @grant unsafeWindow const appVersion = unsafeWindow.appConfig?.version;if (appVersion) { console.log('Page app version:', appVersion);}

Regla del mundo de ejecución

MetadatosComportamiento en Social Browser
@grant noneSe ejecuta en el mundo PRINCIPAL del marco objetivo exacto sin inyección de capacidad GM.
Uno o más explícitos @grantsSe ejecuta en un mundo User Script aislado y determinista; sólo se puentean las capacidades solicitadas.
No @grant metadatosEl modo de compatibilidad heredado MAIN-world se conserva para los scripts Social Browser existentes.

Ejemplo completo

Un pequeño script que combina almacenamiento, estilos, comandos de menú y portapapeles.

Este ejemplo se mantiene intencionalmente pequeño. Recuerda si el resaltado está habilitado, agrega una regla de estilo, permite al usuario alternarla desde el menú User Script y copia un valor de página visible solo cuando se le solicita.

JavaScript · completo User Script
// ==UserScript==// @name Helpful order-page tools// @namespace https://example.com/my-scripts// @version 1.0.0// @match https://example.com/orders/*// @grant GM_getValue// @grant GM_setValue// @grant GM_addStyle// @grant GM_registerMenuCommand// @grant GM_setClipboard// ==/UserScript== (() => { 'use strict';  GM_addStyle(` .sb-order-highlight { outline: 2px solid currentColor; font-weight: 700; } `);  const applyHighlight = () => { const enabled = GM_getValue('highlightEnabled', true); document.querySelectorAll('.order-total').forEach((element) => { element.classList.toggle('sb-order-highlight', enabled); }); };  GM_registerMenuCommand('Toggle order highlighting', () => { const current = GM_getValue('highlightEnabled', true); GM_setValue('highlightEnabled', !current); applyHighlight(); });  GM_registerMenuCommand('Copy current order ID', () => { const orderId = document.querySelector('.order-id')?.textContent?.trim(); if (orderId) { GM_setClipboard(orderId, 'text'); } });  applyHighlight();})();

Nota de compatibilidad

Lo que esta guía considera el contrato de GM respaldado

Esta guía se centra en las capacidades que forman parte de la configuración explícita actual de Social Browser. @grant puente: almacenamiento, oyentes de cambio de valor, estilos/elementos, solicitudes privilegiadas, recursos, pestañas, notificaciones, portapapeles, descargas, comandos de menú, GM_info and unsafeWindow.

Es posible que existan algunos nombres heredados/internos para compatibilidad con versiones anteriores, pero intencionalmente no se presentan aquí como API públicos recomendados hasta que formen parte del contrato de capacidad explícito. Eso mantiene los nuevos scripts en el camino estable en lugar de enseñar detalles de implementación accidentales.

Abrir referencia rápida User ScriptsAbrir cuando sea necesario

Capacidades de script en Social Browser

CapacidadPropósito
Nombre/títuloIdentifique el guión claramente.
Permitido URLsElija dónde puede ejecutarse.
Excluido URLsBloquear la ejecución de páginas específicas.
JavaScriptAgregue lógica y comportamiento de página.
CSSCambiar la apariencia de la página.
HTMLAgregue elementos de interfaz de página pequeña.
Visibilidad del menúControle si aparece como una acción de script activada por el usuario.
Alcance de ventana/marcoElija qué contexto del documento recibe el script.
Ejecución automáticaEjecutar en páginas coincidentes automáticamente.
Ejecución en etapa de precargaComience antes cuando el script lo requiera.
Importar desde archivo / URLTraiga los scripts existentes al administrador.
Metadatos comunes de User ScriptUtilice convenciones de metadatos familiares cuando sean compatibles.

Glosario

User Script
JavaScript, opcionalmente con CSS/HTML, que se ejecuta en páginas seleccionadas del navegador.
regla de partido
Una regla que limita qué URLs recibe el script.
DOM
La representación de objetos del navegador de la página que JavaScript puede leer y cambiar.
Evento
Una señal de página, como un clic o un cambio de entrada.
marco
Un documento incrustado dentro de otra página.
Precarga
Una etapa de ejecución anterior que se utiliza cuando el tiempo normal de la página es demasiado tarde para una necesidad específica.
Perfil
Un entorno Social Browser persistente y aislado con su propio estado de navegador.

Lista de verificación para principiantes

  • Puedo explicar qué es un User Script.
  • Creé y deshabilité un script de prueba.
  • Puedo limitar un script al URLs correcto.
  • Puedo encontrar y cambiar un elemento de página simple.
  • Sé cuándo CSS es suficiente.
  • Reviso el código importado antes de habilitarlo.
  • Puedo usar la consola para depurar un script.

Lista de verificación avanzada

  • Mantengo las reglas de los partidos estrictas.
  • Entiendo páginas dinámicas y observadores acotados.
  • Trato el almacenamiento y el acceso a la red de forma intencionada.
  • Elijo el alcance y el momento del fotograma por una razón.
  • Pruebo scripts en el contexto Profile previsto.
  • Sé cuándo Automation Studio es una mejor herramienta.
Abra preguntas comunes sobre User ScriptAbrir cuando sea necesario
¿Necesito ser desarrollador JavaScript?

No. Los scripts pequeños y útiles a menudo solo necesitan una selección DOM básica, eventos y condiciones simples. Obtenga más información sobre JavaScript cuando un caso de uso real lo requiera.

¿Puede un User Script incluir CSS y HTML?

Sí. El sistema User Script de Social Browser puede incluir personalizaciones de JavaScript y, según el script, CSS y HTML.

¿Puedo importar User Scripts existente?

Los scripts se pueden crear manualmente o importar desde un archivo o directamente desde URL, y se admiten las convenciones comunes de instalación/metadatos de User Script cuando corresponda. Revise el código importado antes de habilitarlo.

¿User Scripts es lo mismo que Automation Studio?

No. User Scripts son mejores para códigos que residen en páginas coincidentes. Automation Studio está diseñado para flujos de trabajo ordenados, orientación, política de ejecución, programación, verificación y recuperación de Profile. Pueden complementarse entre sí.

¿Se pueden ejecutar scripts en diferentes Profiles?

User Scripts opera en contextos de páginas del navegador. Pruébelos y adminístrelos en el Social Browser Profile previsto porque los perfiles pueden tener diferentes sesiones, contenido y estado del navegador.

¿Cuál es la forma más segura de instalar un script desde Internet?

Conozca la fuente, lea los metadatos, inspeccione el código, verifique el alcance de URL y el comportamiento de la red/almacenamiento, luego pruebe en un Profile controlado antes de un uso importante.

¿Listo para probarlo?

Mejora una página con un guión pequeño.

Descargue Social Browser, cree una prueba Profile, agregue un pequeño User Script y manténgalo lo suficientemente simple como para poder explicar cada línea.