« Fonctionnement technique de Jeuxvideo.com » : différence entre les versions

(→‎Fonction officielle JVC : réécriture)
 
Ligne 281 : Ligne 281 :
  jvc.getMessageEditor(".class").selectedText; // Récupérer la sélection utilisateur.
  jvc.getMessageEditor(".class").selectedText; // Récupérer la sélection utilisateur.


PS : Pour garantir le bon fonctionnement, utilisez simplement jvc.getMessageEditor(); '''sans le préfixe "window"'''<ref>Les userscripts sont exécutés dans un environnement isolé (appelé sandbox), ce qui empêche parfois l’accès direct aux objets définis dans le contexte global de la page, comme "window" .</ref>. <br>
PS : Pour garantir le bon fonctionnement, utilisez simplement <code>jvc.getMessageEditor();</code> et/ou <code>unsafeWindow.jvc.getMessageEditor();</code> <ref>Les userscripts sont exécutés dans un environnement isolé (appelé sandbox), ce qui empêche parfois l’accès direct aux objets définis dans le contexte global de la page, comme "window" .</ref>. <br>


Il est nécessaire de faire appel à <code>jvc.getMessageEditor();</code> à chaque modification, sinon vous travaillerez avec une version antérieure de la zone de texte.
Il est nécessaire de faire appel à <code>jvc.getMessageEditor();</code> à chaque modification, sinon vous travaillerez avec une version antérieure.


Cette fonction prend directement en compte des sélecteurs CSS et pas des éléments, exemple :
Cette fonction prend directement en compte des sélecteurs CSS et pas des éléments, exemple :


  let selector = "#message_topic"
  let selector = "#message_topic";
  jvc.getMessageEditor(selector).insertText('text'); //✅ Marche
  jvc.getMessageEditor(selector).insertText('text'); //✅ Marche


  let selector = document.getElementById("message_topic")
  let selector = document.getElementById("message_topic");
  jvc.getMessageEditor(selector).insertText('text'); //❌ Ne marche pas
  jvc.getMessageEditor(selector).insertText('text'); //❌ Ne marche pas


Kheys
2 274

modifications