Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
kb_it:javascript [2024/07/08 03:33] befekb_it:javascript [2024/12/12 21:59] (Version actuelle) befe
Ligne 145: Ligne 145:
   }   }
 }) })
 +</code>
 +
 +==== Gestion des erreurs ====
 +
 +=== Etendre la classe Error ===
 +
 +<code javascript>
 +class DownloadError extends Error {
 +  response: Response
 +  constructor(message: string, response: Response) {
 +    super(message);
 +    this.response = response;
 +    Object.setPrototypeOf(this, DownloadError.prototype);
 +  }
 +};
 +
 +new DownloadError('Erreur au téléchargement du fichier', response);
 </code> </code>
  
Ligne 209: Ligne 226:
 === Fixer plusieurs lignes et/ou plusieurs colonnes d'un tableau === === Fixer plusieurs lignes et/ou plusieurs colonnes d'un tableau ===
  
 +HTML
 <code html> <code html>
 <table class="software-table" data-sticky-rows="2" data-sticky-cols="3"> <table class="software-table" data-sticky-rows="2" data-sticky-cols="3">
Ligne 215: Ligne 233:
 </code> </code>
  
 +CSS
 <code css> <code css>
 table[data-sticky-rows] th, table[data-sticky-rows] th,
Ligne 236: Ligne 255:
 </code> </code>
  
 +Javascript
 <code javascript> <code javascript>
 document.querySelectorAll('table[data-sticky-rows],table[data-sticky-cols]').forEach(table => { document.querySelectorAll('table[data-sticky-rows],table[data-sticky-cols]').forEach(table => {
Ligne 277: Ligne 297:
     });     });
 }); });
 +</code>
 +
 +=== Télécharger des données en provenance d'une variable ===
 +
 +<code javascript>
 +function download (data, type = 'text') {
 +  const a = document.createElement('a')
 +  a.setAttribute('download', 'data')
 +  a.href = window.URL.createObjectURL(new Blob([data], { type: type }))
 +  document.body.appendChild(a)
 +  a.click()
 +  a.remove()
 +}
 +
 +const data = Array.from({ length: 256 }, (_, i) => -128 + i)
 +  .sort(() => Math.random() - 0.5)
 +  .join("\n")
 +
 +download(data)
 </code> </code>