Créer un APK gratuit

Structure de l'application et navigation

Scripts utilisateur intelligents

Scripts par site avec correspondance d'URL et moment d'exécution (comme Greasemonkey)

1Que sont les Smart User Scripts ?#

Les Smart User Scripts sont des scripts nommés individuellement, chacun avec :
🌐 ses motifs de correspondance d'URL (sur quelles pages s'exécuter)
⏱ son moment d'exécution (avant, pendant ou après le chargement)
✅ son interrupteur d'activation/désactivation

Ils fonctionnent comme Greasemonkey ou Tampermonkey dans les navigateurs de bureau, mais intégrés directement à votre application.

✅ Parfait pour :

  • Connexion automatique UNIQUEMENT sur la page /login
  • Masquer les publicités UNIQUEMENT sur les pages d'articles (https://news.com/article/*)
  • Surveiller les changements du DOM avec MutationObserver
  • Injecter avant l'affichage de la page (document-start) pour éviter le flash

Différence clé avec l'injection rapide :
Injection rapide = même CSS/JS sur TOUTES les pages
Smart User Scripts = contrôle par script, par URL et par moment d'exécution

2Où le trouver#

Étape 4 (Autorisations) → faites défiler vers le bas → carte 🤖 Smart User Scripts.

Touchez « + Ajouter » pour créer un nouveau script. Chaque script a :

  • Nom : affiché dans la liste du gestionnaire
  • Motifs de correspondance d'URL : un par ligne (le joker * est pris en charge)
  • Exécuter à : document-end / document-start / document-idle
  • Code : votre JavaScript
  • Interrupteur d'activation

Touchez une ligne pour modifier ou supprimer un script.

3Exemples de motifs de correspondance d'URL#

Les motifs déterminent sur quelles pages le script s'exécute. Utilisez * comme joker :

# Run on every page of every site
*://*/*

# Run only on example.com (any path)
https://example.com/*

# Run on ALL pages of ANY .com domain
https://*.com/*

# Run only on the /login path
https://example.com/login
https://example.com/login/*

# Run on news article pages
https://news.example.com/article/*

4Le moment d'exécution expliqué#

  • document-end (par défaut)

S'exécute APRÈS la fin du chargement de la page. Sûr et le plus compatible. À utiliser pour masquer des éléments, ajouter des boutons, suivre des événements.

  • document-start ⚡ (avancé)

S'exécute AVANT l'affichage de la page. Injecte le script dans le HTML brut via shouldInterceptRequest. Supprime les en-têtes CSP. À utiliser pour un CSS de mode sombre ou pour forcer le viewport avant le rendu.

  • document-idle ⏱

S'exécute 1,5 seconde après le chargement de la page. Utile pour capter du contenu AJAX chargé tardivement ou des fenêtres modales qui apparaissent après un délai.

5Exemple 1 : connexion automatique sur /login uniquement#

Correspondance : https://myapp.com/login
Exécution : document-end

// Auto-fill login form
(function() {
  var email = document.querySelector('input[type=email], input[name=email]');
  var pass  = document.querySelector('input[type=password]');
  if (email) email.value = '[email protected]';
  if (pass)  pass.value  = 'mypassword';
  // Uncomment to auto-submit:
  // var form = document.querySelector('form');
  // if (form) form.submit();
})();

6Exemple 2 : masquer les paywalls sur les pages d'articles#

Correspondance : https://news.site.com/article/*
Exécution : document-end

// Hide paywall overlay and restore scroll
(function() {
  var overlay = document.querySelector('.paywall-overlay, .metered-content, #paywall');
  if (overlay) overlay.remove();
  document.body.style.overflow = 'auto';
  document.documentElement.style.overflow = 'auto';
})();

7Exemple 3 : surveiller le contenu dynamique (MutationObserver)#

Correspondance : *://*/*
Exécution : document-end
Pour les éléments qui apparaissent APRÈS le chargement de la page (fenêtres modales chargées à la demande, publicités) :

// Remove any modal/popup that appears dynamically
(function() {
  var sel = '.modal, .popup, .overlay, [class*="modal"], [class*="popup"]';
  // Remove existing ones first
  document.querySelectorAll(sel).forEach(function(el) { el.remove(); });
  // Watch for new ones
  var obs = new MutationObserver(function() {
    document.querySelectorAll(sel).forEach(function(el) { el.remove(); });
  });
  obs.observe(document.body, { childList: true, subtree: true });
  // Stop watching after 30 s to save battery
  setTimeout(function() { obs.disconnect(); }, 30000);
})();

8Exemple 4 : forcer le mode sombre avant l'affichage (document-start)#

Correspondance : *://*/*
Exécution : document-start
Injecte le CSS avant l'affichage de la page, sans flash blanc :

// Inject dark theme before page renders
(function() {
  var s = document.createElement('style');
  s.id = '__force_dark__';
  s.textContent = [
    'html { filter: invert(1) hue-rotate(180deg) !important; }',
    'img,video,canvas,svg { filter: invert(1) hue-rotate(180deg) !important; }'
  ].join('\
');
  (document.head || document.documentElement).appendChild(s);
})();

9Exemple 5 : analytique personnalisée / suivi d'événements#

Correspondance : https://myshop.com/*
Exécution : document-idle
Envoyez des événements personnalisés une fois la page totalement stabilisée :

// Track page views + button clicks
(function() {
  // Page view
  console.log('[Analytics] Page: ' + location.href);

  // Track all CTA button clicks
  document.querySelectorAll('button, .btn, a[href]').forEach(function(el) {
    el.addEventListener('click', function() {
      console.log('[Analytics] Clicked: ' + (el.textContent || el.href));
      // Replace with your own tracker call, e.g. gtag('event', ...)
    });
  });
})();

10Sécurité et limites#

⚡ document-start supprime les en-têtes Content-Security-Policy pour la page ciblée. À utiliser uniquement sur des sites que vous possédez ou en lesquels vous avez explicitement confiance.

🔒 Politique de même origine : le JS ne peut pas accéder aux iframes d'une autre origine (PayPal, Stripe, connexion Google). Cette règle est appliquée par le moteur du navigateur et ne peut pas être contournée.

📵 HTTPS uniquement : les API comme la géolocalisation ou la caméra dans les scripts injectés nécessitent HTTPS.

✅ Protection contre la double exécution : chaque script est protégé par un indicateur window, il ne s'exécute donc qu'une fois par page.

✅ Fonctionne hors ligne : les Smart User Scripts s'exécutent aussi dans les applications hors ligne issues d'un ZIP.

Cette page est générée à partir du guide d'intégration inclus dans l'application elle-même ; elle reflète donc exactement la version actuelle. Lire en Markdown.

Vérifié par rapport au guide publié le 22/10/2026.