Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Module:MinecraftConnect » : différence entre les versions

De Nefald
Hiob (discussion | contributions)
m échappement
Hiob (discussion | contributions)
mAucun résumé des modifications
Ligne 21 : Ligne 21 :
     end
     end
      
      
     -- Échappement pour JavaScript (utilisation de mw.text.jsonEncode)
     -- Échappement manuel pour JavaScript
     local adresseJS = mw.text.jsonEncode(adresseComplete)
    local function jsEscape(str)
        return str:gsub("\\", "\\\\"):gsub("'", "\\'"):gsub('"', '\\"'):gsub("\n", "\\n")
    end
   
     local adresseJS = jsEscape(adresseComplete)
     local texteHTML = mw.text.encode(texte)
     local texteHTML = mw.text.encode(texte)
      
      
     -- Génération d'un ID unique pour éviter les conflits
     -- Génération d'un ID unique pour éviter les conflits
     local uniqueId = 'mc-btn-' .. mw.text.encode(server:gsub('[^%w]', '-'))
     local uniqueId = 'mc-btn-' .. server:gsub('[^%w]', '-')
      
      
     -- HTML du bouton
     -- HTML du bouton
Ligne 37 : Ligne 41 :
             :attr('title', 'Cliquer pour copier : ' .. mw.text.encode(adresseComplete))
             :attr('title', 'Cliquer pour copier : ' .. mw.text.encode(adresseComplete))
             :attr('data-server', adresseComplete)
             :attr('data-server', adresseComplete)
             :wikitext(texteHTML .. ' 📋') -- Code HTML pour 📋
             :wikitext(texteHTML .. ' 📋')
         :done()
         :done()
      
      
     -- JavaScript pour la copie dans le presse-papier
     -- JavaScript pour la copie dans le presse-papier
     local jsCode = string.format([[
     local jsCode = [[
(function() {
(function() {
     var btn = document.getElementById(%s).querySelector('button');
     var btn = document.getElementById(']] .. uniqueId .. [[').querySelector('button');
     if (!btn) return;
     if (!btn) return;
      
      
     btn.addEventListener('click', function() {
     btn.addEventListener('click', function() {
         var adresse = %s;
         var adresse = ']] .. adresseJS .. [[';
          
          
         if (navigator.clipboard && window.isSecureContext) {
         if (navigator.clipboard && window.isSecureContext) {
Ligne 103 : Ligne 107 :
     }
     }
})();
})();
]],
]]
        mw.text.jsonEncode(uniqueId),
        adresseJS
    )
      
      
     local script = mw.html.create('script'):wikitext(jsCode)
     local script = mw.html.create('script'):wikitext(jsCode)
Les témoins (''cookies'') nous aident à fournir nos services. En utilisant nos services, vous acceptez notre utilisation de témoins.