Social BrowserProfiles, IA et automatisation

User Scripts · Apprenez en changeant de vraies pages

Faites fonctionner les sites Web un peu plus comme vous le souhaitez.

Un User Script est un petit morceau de code qui s'exécute dans les pages Web correspondantes. Commencez par quelques lignes, apportez une modification utile, puis apprenez JavaScript uniquement selon vos besoins.

Adapté aux débutantsPratiquez à chaque leçonJavaScript, CSS & HTMLIntégré à Social BrowserFonctionne avec l’automatisation IA
Vous n'avez jamais écrit de scénario ?Commencez par la leçon 1. Nous expliquons le JavaScript minimum dont vous avez besoin.
Vous utilisez déjà des scripts de style Tampermonkey ?Accédez aux métadonnées, à la correspondance, à la portée et à Social Browser Profiles.
Vous voulez des flux de travail complets ?Utilisez User Scripts avec Automation Studio et des workflows IA pilotés via MCP AI.

Exemples de travail

Copiez un petit script. Voir le changement de page.

Commencez par des améliorations de page inoffensives. Chaque exemple est intentionnellement petit afin que vous puissiez comprendre chaque ligne avant de l'utiliser.

Apprenez à créer un script →
Démarreur · JavaScript

Mettre en valeur une valeur importante

Trouvez un élément et faites-le plus facilement remarquer.

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

Utilisez-le pour : tableaux de bord, totaux, étiquettes d'état ou pages d'assurance qualité que vous contrôlez.

Apprenez le JavaScript
Démarreur · CSS

Masquer une barre latérale gênante

Parfois, une règle CSS suffit.

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

Utilisez-le pour : des tableaux de bord internes ou des pages plus propres que vous consultez à plusieurs reprises.

Apprenez CSS et HTML
Constructeur · JavaScript

Ajouter un bouton Copier à côté d'une valeur

Créez une petite aide au lieu de répéter manuellement les étapes de copier/coller.

Exemple
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);}

Utilisez-le pour : ID, références ou valeurs non sensibles que vous copiez souvent.

Apprendre les événements
Réagir · Pages dynamiques

Attendez le contenu qui apparaît plus tard

Les pages modernes s'affichent souvent après le premier chargement. Observez uniquement ce dont vous avez besoin.

Exemple
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 });

Utilisez-le pour : Tableaux de bord SPA et widgets de page retardés.

Apprendre les pages dynamiques
Intégrer · Profiles

Utilisez le même assistant dans un Profiles séparé

Le script reste réutilisable tandis que chaque Profile conserve sa propre session de navigateur et son propre état de page.

Même scénario→Profile A+Profile B+Profile C
  1. Créez un petit script.
  2. Faites correspondre uniquement le site prévu.
  3. Ouvrez le site dans différents tests Profiles.
  4. Confirmez que l'assistant se comporte correctement dans chaque contexte.
Apprendre les scripts + Profiles
Avancé · Choisissez l'outil

User Script + Automation Studio

Conservez les assistants de page persistants dans un User Script et une orchestration en plusieurs étapes dans Automation Studio.

User Script+Flux de travail→Processus réutilisable
  1. User Script améliore la page correspondante.
  2. Workflow effectue des étapes ordonnées du navigateur.
  3. L'automatisation sélectionne Profiles et la politique d'exécution.
  4. La tâche décide quand s'exécuter.
Apprenez quand les combiner
Avant d'exécuter du code depuis Internet : lisez-le, comprenez à quelles pages il correspond, vérifiez le comportement du stockage/réseau et testez-le dans un Profile contrôlé. Ces exemples évitent intentionnellement les mots de passe, les cookies et les données de session.

Bibliothèque d'exemples GM API

Recettes GM utiles que vous pouvez copier, lire et adapter.

Chaque exemple est intentionnellement petit. Commencez par un problème, copiez le script, lisez chaque ligne, puis modifiez uniquement les sélecteurs, URLs ou les étiquettes que vous comprenez.

Ouvrez le guide complet GM API →
Vous vous souvenez d'un paramètre ? StockageLire une autre origine ? RéseauAjouter un assistant de page ? Assistants de pagesAjouter une action utilisateur ? Commandes de menuAlerter l'utilisateur ? NotificationsEnregistrer un fichier ? Téléchargements
Démarreur · Stockage

N'oubliez pas une préférence en mode compact

Enregistrez une préférence d'interface utilisateur inoffensive et restaurez-la lors du prochain chargement de la page.

JavaScript · préférence persistante
// ==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);
Apprendre le stockage GM
Constructeur · Assistant de page

Ajouter un petit panneau d'aide

Injectez CSS et un élément d'assistance sans remplacer la mise en page du site 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'});
Apprendre les assistants de page
Constructeur · Réseau

Lire JSON à partir d'un API autorisé

Utilisez une requête privilégiée lorsque les données dont vous avez besoin ne font pas partie de la page actuelle.

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); }});
Apprendre les requêtes privilégiées
Réagir · Presse-papiers

Copiez une référence de page en toute sécurité

Copiez une valeur non sensible après un clic explicite de l'utilisateur.

JavaScript · GM_setClipboard
// @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);}
Apprendre l'accès au presse-papiers
Réagir · Commande de menu

Ajouter une action de script au menu User Script

Conservez les actions facultatives en dehors de l'interface utilisateur de la page et exécutez-les uniquement lorsque l'utilisateur le demande.

JavaScript · GM_registerMenuCommand
// @grant GM_registerMenuCommand GM_registerMenuCommand('Highlight overdue rows', () => { document.querySelectorAll('[data-status="overdue"]').forEach(row => { row.style.outline = '2px solid currentColor'; });});
Apprendre les commandes de menu
Intégrer · Notification

Avertir lorsqu'une longue tâche de page est prête

Afficher une notification du navigateur uniquement pour un événement significatif.

JavaScript · GM_notification
// @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');
Apprendre les notifications
Intégrer · Onglets

Ouvrir une page associée dans un onglet d'arrière-plan

Ouvrez les informations de support sans remplacer la page que l'utilisateur consulte.

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);
Onglet Apprendre APIs
Avancé · État de l'onglet

Mémoriser la progression pour un onglet du navigateur

Conservez l’état du script temporaire attaché à l’onglet actuel au lieu du stockage 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);});
Apprendre l'état par onglet
Avancé · Télécharger

Télécharger un fichier de rapport

Utilisez la fonctionnalité de téléchargement pour un fichier que l'utilisateur a intentionnellement demandé au script d'enregistrer.

JavaScript · GM_télécharger
// @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); }});
Apprendre les téléchargements
Avancé · Ressource

Regroupez une petite ressource texte avec un script

Référencez une ressource déclarée au lieu de coder en dur un élément de texte volumineux et réutilisable.

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);}
Apprendre les ressources
Avant d'exécuter le code copiéLisez-le, affinez-le @match règles, révisez chaque @grant and @connect, et testez-le d'abord dans un Profile sécurisé.
Cours User ScriptsAperçu du cours
Choisissez une leçon ou commencez le cours guidé.
Débutant · Leçon 1

Qu'est-ce qu'un User Script ?

Temps 5 minutesObjectif Comprendre ce que User Scripts peut changer

Un User Script est un JavaScript que le navigateur exécute pour vous sur les pages qui correspondent aux règles que vous choisissez. Il peut apporter de petites modifications à un site Web après l'ouverture de la page : mettre en évidence des informations, ajouter un raccourci, masquer l'encombrement, faciliter un formulaire répété ou réagir aux événements de la page.

Sans scénario

  1. Ouvrez la page.
  2. Faites le même petit ajustement.
  3. Répétez-le lors de la prochaine visite.

Avec un User Script

  1. Créez la règle une fois.
  2. Limitez-le aux bonnes pages.
  3. Laissez-le s'exécuter automatiquement lorsque ces pages s'ouvrent.

Pourquoi les User Scripts sont utiles dans Social Browser

Social Browser combine User Scripts avec le navigateur persistant Profiles. Un Profile peut conserver sa propre session, son propre stockage, ses paramètres et ses scripts, de sorte qu'une petite personnalisation peut rester proche du contexte du navigateur dans lequel vous l'utilisez réellement.

Important : un User Script exécute du code dans les pages Web. Installez des scripts uniquement à partir de sources que vous comprenez et auxquelles vous faites confiance. Un script utile doit être facile à lire, limité aux pages dont il a besoin et facile à désactiver.
Débutant · Leçon 2

Créez votre premier User Script

Temps 5 à 10 minutesObjectif Exécutez un petit script et voyez un changement de page

Commencez par quelque chose d’inoffensif et de visible. Le but est de prouver le flux complet : créer → enregistrer → activer → ouvrir une page correspondante → voir le résultat.

1

Ouvrir User Scripts

Ouvrez le gestionnaire User Script intégré dans Social Browser et créez un nouveau script.

2

Donnez-lui un nom clair

Utilisez un nom qui indique ce que fait le script, tel que Highlight Test Heading.

3

Choisissez une page de test sécurisée

Utilisez une page que vous contrôlez ou une page inoffensive où la modification de l'affichage ne soumettra pas de données ni ne modifiera de compte.

4

Ajoutez quelques lignes de JavaScript

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

Enregistrez-le et activez-le

Rechargez la page correspondante. Si le titre a un aperçu, votre premier script fonctionne.

Règle pour débutant : un script, un résultat visible. Ne commencez pas par copier un script de 500 lignes que vous ne pouvez pas expliquer.
Débutant · Leçon 3

Faire en sorte que le script s'exécute uniquement là où il appartient

Temps 5 minutesObjectif Utilisez les règles URL autorisées et exclues en toute sécurité

La correspondance de pages est l'une des compétences les plus importantes de User Script. Un script destiné à personnaliser un tableau de bord n'a pas besoin d'autorisation pour s'exécuter sur chaque site Web que vous visitez.

1

Autorisé URLs

Décrivez les pages où le script est utile.

2

Exclus URLs

Bloquez les pages à l'intérieur de cette zone où le script doit rester inactif.

3

Testez les deux côtés

Ouvrez une page correspondante et une page non correspondante avant de faire confiance à la règle.

Étape 1 terminéeSi votre script s'exécute uniquement sur la page souhaitée, vous êtes prêt à créer quelque chose d'utile.
Constructeur · Leçon 4

Le JavaScript dont vous avez réellement besoin en premier

Temps 10 minutesObjectif Lire et modifier des éléments de page simples

Vous n'avez pas besoin de tout le langage JavaScript pour créer un User Scripts utile. Commencez avec quatre idées : trouver un élément, lire une valeur, modifier quelque chose et répondre à un événement.

BesoinSimple JavaScript
Trouver un élémentdocument.querySelector('.price')
Lire son texteelement.textContent
Changer le texteelement.textContent = 'Done'
Changer un styleelement.style.fontWeight = '700'
Réagir à un clicbutton.addEventListener('click', handler)

Vérifiez toujours qu'un élément existe avant de l'utiliser. Les sites Web changent et un élément manquant ne devrait pas faire planter tout le script.

Constructeur · Leçon 5

Utilisez JavaScript, CSS et HTML pour différents travaux

Temps 8 minutesObjectif Choisissez l'outil le plus simple pour un changement de page
JS

JavaScript

Utilisez-le pour la logique, les événements, la lecture de valeurs et le changement de comportement.

CSS

CSS

Utilisez-le pour l'apparence : masquez, redimensionnez, mettez en surbrillance ou réorganisez les éléments visuels.

HTML

HTML

Utilisez-le lorsque le script a besoin d'un petit panneau d'assistance, d'une étiquette ou d'un contrôle.

Limitez les modifications de page : l'ajout d'une boîte d'assistance est plus facile à maintenir que la reconstruction d'une interface de site Web dans un script.
Constructeur · Leçon 6

Utilisez le gestionnaire de scripts intégré

Temps 7 minutesObjectif Créez, recherchez, activez et modifiez des scripts en toute confiance

Le gestionnaire de scripts est l'endroit où les scripts réutilisables doivent rester organisés. Utilisez des noms clairs, séparez les expériences désactivées des scripts fonctionnels et facilitez la désactivation d'un script lorsque vous déboguez une page.

  • Créez et modifiez un script.
  • Recherchez-le ou identifiez-le par un nom clair.
  • Activez-le ou désactivez-le sans le supprimer.
  • Examinez ensemble les règles JavaScript, CSS, HTML et URL.
  • Gardez les scripts expérimentaux visiblement nommés comme tests.
Constructeur · Leçon 7

Importez des scripts sans traiter Internet comme un code fiable

Temps 8 minutesObjectif Importer à partir d'un fichier ou URL et vérifier avant d'activer

Social Browser peut créer des scripts manuellement ou les importer à partir d'un fichier ou directement URL. Il peut également reconnaître les flux d'installation courants de User Script. L’importation est pratique, mais la commodité n’est pas la même chose que la confiance.

1

Connaître la source

Préférez le code que vous avez écrit, celui que possède votre équipe ou une source que vous pouvez vérifier.

2

Lire les métadonnées

Vérifiez le nom, la correspondance avec URLs et le comportement d'exécution.

3

Revoir le code

Recherchez les requêtes réseau inattendues, les actions de formulaire masquées, l'accès au stockage ou la correspondance de pages étendue.

4

Testez dans un environnement sécurisé Profile

Activez-le sur une page contrôlée avant de l’utiliser dans une session de navigateur importante.

Constructeur · Leçon 8

Les métadonnées indiquent au navigateur comment le script doit s'exécuter

Temps 8 minutesObjectif Comprendre les paramètres autour du code

Un User Script utile est plus qu'un JavaScript. Social Browser peut utiliser des informations de script telles que le titre/nom, les URLs autorisés et exclus, la visibilité du menu, la portée de la fenêtre/du cadre, l'exécution automatique et l'exécution de l'étape de préchargement.

ParamètreQuestion à laquelle il répond
Nom/titreQue fait ce script ?
Autorisé URLsOù peut-il fonctionner ?
Exclus URLsOù ne doit-il pas courir ?
Portée de la fenêtre/du cadreQuel contexte de document doit le recevoir ?
Exécution automatiqueDoit-il fonctionner sans action de menu manuelle ?
Étape de préchargementDoit-il démarrer plus tôt lors du chargement de la page ?
Visibilité des menusL'utilisateur doit-il pouvoir le déclencher depuis le menu du script ?
Réagir · Leçon 9

Réagissez à la page au lieu de la vérifier constamment

Temps 8 minutesObjectif Utilisez les événements DOM pour des interactions simples

Les pages produisent déjà des événements : clics, modifications de saisie, focus, navigation et bien plus encore. Écouter l'événement dont vous avez besoin est généralement plus propre que d'exécuter une boucle rapide qui vérifie la page entière encore et encore.

const button = document.querySelector('#save');button?.addEventListener('click', () => { console.log('Save button clicked');});
Règle de performances : préférez un événement ou un observateur limité à une minuterie permanente à haute fréquence.
Réagir · Leçon 10

Gérer les pages qui changent après leur chargement

Temps 10 minutesObjectif Travailler avec des éléments retardés et restitués

Les sites Web modernes affichent souvent du contenu après le chargement de la première page. Si votre élément cible n'existe pas encore, le script peut l'attendre ou observer une partie spécifique de la page pour détecter les modifications.

Évitez les longs délais arbitraires. Attendre cinq secondes partout peut masquer le problème mais rend les scripts lents et peu fiables. Attendez ce dont vous avez réellement besoin et arrêtez d’attendre après une limite raisonnable.
Réagir · Leçon 11

Enregistrez de petites préférences, pas des secrets

Temps 7 minutesObjectif N'oubliez pas les paramètres de script inoffensifs

Un script peut avoir besoin de mémoriser une préférence inoffensive, comme par exemple si un panneau d'assistance est réduit ou quel mode d'affichage vous avez sélectionné. Le stockage du navigateur peut aider, mais les informations de compte sensibles, les mots de passe, les secrets 2FA et le matériel de session ne doivent pas être stockés de manière informelle dans des scripts.

Bonnes données de préférence

  • Panneau ouvert/fermé.
  • Lignes par page.
  • Option d'affichage.

Traiter comme sensible

  • Mots de passe.
  • Secrets 2FA.
  • Matériel de session/cookie.
Réagir · Leçon 12

Lisez d'abord les données de la page ; demander d'autres données uniquement en cas de besoin

Temps 8 minutesObjectif Gardez l’accès aux données simple et compréhensible

Si les informations sont déjà dans la page, lisez-les depuis le DOM. Si votre script a réellement besoin d’une autre ressource Web, les règles normales de mise en réseau du navigateur sont toujours importantes. Gardez les demandes visibles dans votre code et évitez d'envoyer des données de page/compte à un endroit auquel l'utilisateur ne s'attendait pas.

Règle simple : if the script sends data away from the page, a reviewer should be able to see exactly what is sent and why.
Intégrer · Leçon 13

User Scripts devient plus utile avec Profiles persistant

Temps 8 minutesObjectif Comprendre le comportement des scripts dans des contextes de navigateur distincts

Un Social Browser Profile conserve son propre contexte de navigateur. Cela signifie que vous pouvez séparer les sessions de compte et l'état de la page tout en réutilisant la même idée de script, le cas échéant. Testez un script dans le contexte spécifique Profile où il sera réellement exécuté.

Profil→Page correspondante→User Script→Amélioration des petites pages

Ne présumez pas qu'un script qui fonctionne dans un état de site Web fonctionnera automatiquement dans chaque Profile. Différentes sessions peuvent afficher différentes mises en page, autorisations ou contenus.

Intégrer · Leçon 14

Frames et timing : exécuter dans le bon document au bon moment

Temps 10 minutesObjectif Choisissez délibérément la portée et le calendrier d’exécution

Une page peut contenir le document principal plus un ou plusieurs cadres. Un script peut également nécessiter une exécution automatique normale ou une étape de préchargement antérieure. Ces options résolvent différents problèmes, ne les modifiez donc pas toutes lorsqu'un élément manque.

Périmètre

Page principale ou cadre ?

Identifiez quel document contient réellement l’élément.

Calendrier

Normal ou précharge ?

Commencez tôt uniquement lorsque le script doit réellement affecter l'initialisation.

Dynamique

Rendu plus tard ?

Si la page crée l'élément ultérieurement, gérez le contenu dynamique au lieu de modifier aveuglément la portée.

Intégrer · Leçon 15

Déboguer un User Script sans deviner

Temps 10 minutesObjectif Déterminez si le problème vient de la correspondance, du timing, du code ou du site Web
1

Confirmez que le script est activé

Ne déboguez pas le code actuellement désactivé.

2

Confirmer les correspondances URL

Vérifiez les règles autorisées et exclues.

3

Ajouter des messages clairs sur la console

Enregistrez le démarrage du script et avant l'opération que vous testez.

4

Vérifiez l'élément cible

Vérifiez s'il existe déjà et si la page l'a restitué.

5

Désactivez le script et comparez

Si le problème de page persiste après sa désactivation, le script n'en est peut-être pas la cause.

Étape 4 terminéeVous pouvez maintenant créer, définir la portée et déboguer un User Scripts normal dans Social Browser.
Avancé · Leçon 16

Écrivez des scripts faciles à faire confiance et à maintenir

Temps 10 minutesObjectif Réduisez les accès inutiles et les comportements cachés
  • Faites correspondre uniquement les pages dont le script a besoin.
  • Utilisez des noms et des commentaires clairs pour les comportements non évidents.
  • Gardez les destinations réseau visibles dans le code.
  • Évitez de stocker des informations de compte sensibles.
  • Arrêtez les observateurs et les chronomètres lorsqu’ils ne sont plus nécessaires.
  • Ne cachez pas les effets secondaires importants derrière de vagues fonctions d’assistance.
  • Testez les modifications dans un Profile sécurisé avant les sessions importantes.
  • Gardez un moyen rapide de désactiver le script.
Avancé · Leçon 17

Recettes pratiques User Script

Temps 15 minutesObjectif Partez de petits patrons réutilisables
Recette 1 · Mettre en valeur les valeurs importantesDébutant
  1. Faites correspondre une page spécifique.
  2. Trouvez les éléments de valeur.
  3. Ajoutez une classe ou un style CSS.
  4. Ne faites rien si les éléments manquent.
Recette 2 · Ajouter un raccourci de pageDébutant
  1. Créez un petit bouton d'assistance.
  2. Insérez-le près de la zone concernée.
  3. Écoutez son clic.
  4. Effectuez une action sur la page locale.
Recette 3 · Nettoyer un tableau de bordIntermédiaire
  1. Masquez uniquement l’encombrement visuel clairement identifié.
  2. Gardez les contrôles de la page principale intacts.
  3. Enregistrez une préférence d’affichage inoffensive si cela est utile.
Recette 4 · Assister un formulaire répétéIntermédiaire
  1. Détectez le formulaire.
  2. Remplissez uniquement les valeurs répétées non sensibles attendues par l'utilisateur.
  3. Laissez la décision de soumission finale visible à l'utilisateur, sauf si le flux de travail nécessite explicitement une automatisation.
Recette 5 · Attendez le contenu dynamiqueIntermédiaire
  1. Cherchez une fois l'élément.
  2. En cas d'absence, observez une zone parentale étroite.
  3. Arrêtez d'observer après l'apparition de l'élément ou après un délai d'attente.
Avancé · Leçon 18

User Script, Automation Studio ou les deux ?

Temps 8 minutesObjectif Choisissez l'outil le plus simple pour le travail
Je veux…Commencez par…
Changer l'apparence ou le comportement d'une page correspondante chaque fois que je l'ouvreUser Script
Ajouter un petit assistant de page ou un raccourciUser Script
Exécuter un processus de navigateur ordonné en plusieurs étapesAutomation Studio Workflow
Exécutez le même processus sur Profiles ou selon un planningAutomation Studio
Conservez une personnalisation de page utile pendant l'exécution d'un Automation WorkflowUser Script + Automation Studio
Besoin d'une logique de page personnalisée dans un flux de travail plus vasteUtilisez la combinaison prise en charge la plus simple et gardez les responsabilités claires
Une bonne architecture est ennuyeuse : conservez la personnalisation persistante des pages dans un User Script et l'orchestration du flux de travail dans Automation Studio. Ne transformez pas un script géant en un système d'automatisation complet si le Studio fournit déjà la fonctionnalité de workflow.
Référence GM API

GM API dans Social Browser — de la première utilisation aux scripts avancés

Utilisez-le lorsque La page simple JavaScript ne suffit pasObjectif Utilisez les fonctionnalités de script au niveau du navigateur en toute sécurité

Les GM API offrent à un User Script des fonctionnalités que la page normale JavaScript ne possède pas toujours, telles que le stockage au niveau du script, les requêtes d'origine croisée, les notifications, les téléchargements, l'accès au presse-papiers, les ressources et les commandes de menu de script. Dans Social Browser, un explicite @grant le script reçoit uniquement les fonctionnalités qu'il demande.

Parcourez par catégorie ou recherchez par nom API.

Commencez petit : n'ajoutez pas tous @grant ligne "juste au cas où". Demandez uniquement les API que le script utilise réellement. Cela rend le script plus facile à comprendre, à réviser et à faire confiance.

Commencez ici

How @grant fonctionne

Pour les nouveaux scripts, déclarez chaque API privilégié que vous utilisez. Social Browser exécute des scripts avec des autorisations explicites dans un monde User Script isolé et relie uniquement les fonctionnalités demandées. Un scénario avec @grant none fonctionne sans capacités GM.

JavaScript · script minimal accordé
// ==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');

Classique GM_* ou moderne GM.*?

Social Browser prend en charge les noms classiques familiers et leurs noms modernes GM.* forms for the main GM capability set. The modern form is Promise-friendly, so use await. Choisissez un style par script et restez cohérent.

Classique
JavaScript
const theme = GM_getValue('theme', 'dark');GM_setValue('theme', 'light');
Moderne
JavaScript
const theme = await GM.getValue('theme', 'dark');await GM.setValue('theme', 'light');

GM_info / GM.info

Utilisez les informations de script lorsque vous devez inspecter le script actuel, la version, les autorisations, les correspondances ou les informations d'exécution Social Browser. Ne codez pas en dur le comportement autour des chaînes de version, sauf si vous avez vraiment besoin d'une logique de compatibilité.

JavaScript · inspecter les métadonnées du 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);

Stockage

Mémoriser les petites données de script

Le stockage GM est limité au User Script au lieu d'être un stockage de pages ordinaire. Il est idéal pour les préférences, les compteurs et l'état des scripts inoffensifs. Ne l'utilisez pas comme coffre-fort occasionnel pour les mots de passe, les secrets 2FA, les cookies ou le matériel de session.

APICe que ça faitRésultat typique
GM_getValue(key, defaultValue)Lisez une valeur enregistrée.La valeur enregistrée ou votre valeur par défaut.
GM_setValue(key, value)Enregistrez une valeur.Met à jour le stockage à l'échelle du script.
GM_deleteValue(key)Supprimez une valeur.La clé disparaît.
GM_listValues()Liste les clés enregistrées.Un tableau de noms de clés.
GM_getValues(...)Lisez plusieurs valeurs ensemble.Un objet de valeurs.
GM_setValues(object)Enregistrez plusieurs valeurs ensemble.Met à jour chaque clé fournie.
GM_deleteValues(keys)Supprimez plusieurs clés.Supprime les valeurs répertoriées.
JavaScript · enregistrer les préférences utilisateur
// @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');

Observer un changement de valeur

GM_addValueChangeListener est utile lorsque le même script est ouvert dans plusieurs cadres ou onglets. Le rappel reçoit (name, oldValue, newValue, remote). Dans Social Browser, les événements de changement de valeur peuvent se synchroniser entre les images/onglets de la même Profile/session.

JavaScript · écouteur de stockage
// @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);

Assistants de pages

Ajouter des styles ou des petits éléments

GM_addStyle(css) / GM.addStyle(css)

Utilisez-le lorsqu'une personnalisation de page est principalement visuelle. C'est plus propre que de définir plusieurs element.style propriétés.

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

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

Créez un petit élément DOM et ajoutez-le en toute sécurité. Vous pouvez d'abord transmettre un élément parent ou l'omettre pour utiliser le corps de la page.

JavaScript · ajouter un bouton d'assistance
// @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); } });}

Réseau

Faites des demandes privilégiées avec GM_xmlhttpRequest

Page normale fetch() est contrôlé par les règles normales du navigateur/CORS de la page. Requête GM de Social Browser API utilise un canal de requête de processus de navigateur dédié. Avant qu'une requête ne soit envoyée, sa destination est vérifiée par rapport au script @connect règles.

L'accès au réseau mérite d'être revu. Gardez les destinations étroites et visibles. N’envoyez jamais de données de compte/page à un service auquel l’utilisateur ne s’attendrait pas.
JavaScript · Demande 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);

Rappels et abandon

La requête API prend en charge les rappels de requêtes courants et renvoie un handle qui peut être abandonné. Utilisez un délai d'attente même si vous prenez également en charge l'abandon.

JavaScript · rappels + abandon
// @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();

Forme moderne : GM.xmlHttpRequest(...) and GM.xmlhttpRequest(...) mapper à la même capacité de requête.

Ressources

Regroupez du texte réutilisable, CSS ou d’autres actifs

Déclarez un bien avec @resource, puis lisez-le par son nom. GM_getResourceText returns decoded text. GM_getResourceURL returns a data URL that preserves the response MIME type.

JavaScript · @ressource
// ==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 le nom de la ressource n'existe pas, le API renvoie undefined. Gardez les noms de ressources courts et descriptifs.

Aides au navigateur

Onglets, notifications et presse-papiers

GM_openInTab(url, options)

Ouvrez un URL dans un onglet Social Browser. Utiliser active: false quand le nouvel onglet doit s’ouvrir sans prendre le focus.

JavaScript · ouvrir un onglet en arrière-plan
// @grant GM_openInTab GM_openInTab('https://example.com/report', { active: false});

État du script par onglet : GM_getTab, GM_saveTab, GM_getTabs

Ces API stockent le petit état User Script associé aux onglets. Ils sont utiles lorsqu'un script doit mémoriser quelle étape ou quelle vue appartient à un onglet particulier sans la mélanger avec les préférences globales du script.

JavaScript · mémoriser l'état de cet onglet
// @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

Afficher une notification du navigateur pour quelque chose que l'utilisateur devrait réellement remarquer. Évitez le spam de notification pour les activités de script de routine.

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

GM_setClipboard(data, type)

Copiez le texte (ou HTML sur demande) dans le presse-papiers. Utilisez-le après une action claire de l'utilisateur lorsque cela est possible, afin que l'utilisateur comprenne pourquoi son presse-papiers a changé.

JavaScript · copier une valeur de page
// @grant GM_setClipboard const orderId = document.querySelector('.order-id')?.textContent?.trim();if (orderId) { GM_setClipboard(orderId, 'text');}

Menus et téléchargements

Ajouter des actions utilisateur délibérées

GM_registerMenuCommand / GM_unregisterMenuCommand

Enregistrez une commande dans le menu User Script. Il s'agit d'un bon modèle pour les actions qui ne devraient se produire que lorsque l'utilisateur les demande explicitement.

JavaScript · commande de menu
// @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

Démarrez un téléchargement via Social Browser. Donnez au fichier un nom clair et utilisez-le uniquement lorsque le téléchargement fait partie de l'objectif visible du script.

JavaScript · télécharger un fichier
// @grant GM_download await GM_download({ url: 'https://example.com/reports/today.csv', name: 'today-report.csv'});

Avancé

unsafeWindow: pont vers les pages globales uniquement lorsque cela est nécessaire

User Scripts à autorisation explicite s'exécute normalement dans un monde isolé. unsafeWindow est un pont optionnel vers les éléments globaux dans le monde PRINCIPAL de la page. Utilisez-le uniquement lorsque le site Web expose une variable ou une fonction de page que l'accès de script isolé ordinaire ne peut pas atteindre.

Utiliser de manière étroite : Les pages globales appartiennent au site Web et peuvent changer sans préavis. Préférez les DOM API normaux lorsqu'ils résolvent le problème.
JavaScript · lire une page globale
// @grant unsafeWindow const appVersion = unsafeWindow.appConfig?.version;if (appVersion) { console.log('Page app version:', appVersion);}

Règle du monde d'exécution

MétadonnéesComportement dans Social Browser
@grant noneFonctionne dans le monde PRINCIPAL exact du cadre cible sans injection de capacité GM.
Un ou plusieurs explicites @grantsFonctionne dans un monde User Script isolé déterministe ; seules les capacités demandées sont pontées.
No @grant métadonnéesLe mode de compatibilité hérité du monde MAIN est conservé pour les scripts Social Browser existants.

Exemple complet

Un petit script qui combine stockage, styles, commandes de menu et presse-papiers

Cet exemple reste volontairement petit. Il se souvient si la mise en surbrillance est activée, ajoute une règle de style, permet à l'utilisateur de la basculer à partir du menu User Script et copie une valeur de page visible uniquement lorsque cela lui est demandé.

JavaScript · complet 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();})();

Remarque sur la compatibilité

Ce que ce guide considère comme le contrat GM pris en charge

Ce guide se concentre sur les fonctionnalités qui font partie de la version explicite actuelle de Social Browser. @grant pont : stockage, écouteurs de changement de valeur, styles/éléments, requêtes privilégiées, ressources, onglets, notifications, presse-papiers, téléchargements, commandes de menu, GM_info and unsafeWindow.

Certains noms hérités/internes peuvent exister à des fins de compatibilité ascendante, mais ils ne sont intentionnellement pas présentés ici en tant que API publics recommandés jusqu'à ce qu'ils fassent partie du contrat de capacité explicite. Cela maintient les nouveaux scripts sur un chemin stable au lieu d'enseigner des détails d'implémentation accidentels.

Ouvrir la référence rapide User ScriptsOuvert en cas de besoin

Capacités de script dans Social Browser

CapabilityObjectif
Nom/titreIdentifiez clairement le script.
Autorisé URLsChoisissez où il peut fonctionner.
Exclus URLsBloquez l’exécution de pages spécifiques.
JavaScriptAjoutez une logique et un comportement de page.
CSSChanger l'apparence de la page.
HTMLAjoutez des éléments d’interface de petite page.
Visibilité des menusContrôlez si elle apparaît comme une action de script déclenchée par l'utilisateur.
Portée de la fenêtre/du cadreChoisissez le contexte de document qui reçoit le script.
Exécution automatiqueExécutez automatiquement sur les pages correspondantes.
Exécution de l'étape de préchargementCommencez plus tôt lorsque le script l'exige.
Importer depuis le fichier / URLIntégrez les scripts existants dans le gestionnaire.
Métadonnées communes User ScriptUtilisez les conventions de métadonnées familières lorsqu’elles sont prises en charge.

Glossaire

User Script
JavaScript, en option avec CSS/HTML, qui s'exécute dans les pages de navigateur sélectionnées.
Règle de correspondance
Une règle qui limite quels URLs reçoivent le script.
DOM
Représentation objet du navigateur de la page que JavaScript peut lire et modifier.
Événement
Un signal de page tel qu'un clic ou un changement d'entrée.
Cadre
Un document intégré dans une autre page.
Préchargement
Une étape d'exécution antérieure utilisée lorsque le timing normal des pages est trop tardif pour un besoin spécifique.
Profil
Un environnement Social Browser isolé et persistant avec son propre état de navigateur.

Liste de contrôle pour débutant

  • Je peux expliquer ce qu'est un User Script.
  • J'ai créé et désactivé un script de test.
  • Je peux limiter un script au bon URLs.
  • Je peux rechercher et modifier un simple élément de page.
  • Je sais quand CSS suffit.
  • Je vérifie le code importé avant de l'activer.
  • Je peux utiliser la console pour déboguer un script.

Liste de contrôle avancée

  • Je garde les règles de match étroites.
  • Je comprends les pages dynamiques et les observateurs limités.
  • Je traite le stockage et l'accès au réseau intentionnellement.
  • Je choisis la portée et le timing du cadre pour une raison.
  • Je teste les scripts dans le contexte Profile prévu.
  • Je sais quand Automation Studio est un meilleur outil.
Ouvrir les questions courantes sur User ScriptOuvert en cas de besoin
Dois-je être un développeur JavaScript ?

Non. Les petits scripts utiles n'ont souvent besoin que d'une sélection DOM de base, d'événements et de conditions simples. Apprenez-en davantage sur JavaScript lorsqu’un cas d’utilisation réel l’exige.

Un User Script peut-il inclure CSS et HTML ?

Oui. Le système User Script de Social Browser peut inclure des personnalisations JavaScript et, selon le script, CSS et HTML.

Puis-je importer un User Scripts existant ?

Les scripts peuvent être créés manuellement ou importés à partir d'un fichier ou directement de URL, et les conventions d'installation/métadonnées courantes de User Script sont prises en charge le cas échéant. Vérifiez le code importé avant de l’activer.

User Scripts est-il identique à Automation Studio ?

Non. Les User Scripts sont les meilleurs pour le code qui vit avec les pages correspondantes. Automation Studio est conçu pour les flux de travail ordonnés, le ciblage Profile, la politique d'exécution, la planification, la vérification et la récupération. Ils peuvent se compléter.

Les scripts peuvent-ils s'exécuter dans différents Profiles ?

User Scripts fonctionne dans les contextes de page du navigateur. Testez-les et gérez-les dans le Social Browser Profile prévu, car les profils peuvent avoir des sessions, des contenus et des états de navigateur différents.

Quelle est la manière la plus sûre d’installer un script depuis Internet ?

Connaissez la source, lisez les métadonnées, inspectez le code, vérifiez la portée de URL et le comportement du réseau/stockage, puis testez dans un Profile contrôlé avant une utilisation importante.

Prêt à essayer ?

Améliorez une page avec un petit script.

Téléchargez Social Browser, créez un test Profile, ajoutez un petit User Script et restez suffisamment simple pour que vous puissiez expliquer chaque ligne.