Un mur de notes - le hollandais volant
Tiens, ça peut être utile ça ! Bonne idée et toute simple en plus ! Merci Timo !
EDIT: Sinon, il y a ça aussi, plus élaboré mais pas usine à gaz quand même : https://postit.ecyseo.net/ Merci JerryWham
Tiens, ça peut être utile ça ! Bonne idée et toute simple en plus ! Merci Timo !
EDIT: Sinon, il y a ça aussi, plus élaboré mais pas usine à gaz quand même : https://postit.ecyseo.net/ Merci JerryWham
Comme découvert grâce à ArthurHoaro, pour obliger le navigateur à gérer le drop de fichier sur une dropzone, il faut d'abord faire un preventDefault() sur les événements dragover et/ou dragenter.
On peut le faire en dur dans le HTML:
<div ondragover="return false">
<div ondragover="event.preventDefault()">
Ce qui peut même servir pour le ciblage du drop avec un sélecteur genre *[ondragover]
On peut bien entendu également le définir directement dans le js:
document.getElementById("body").addEventListener("drop",function(e){
console.log(e);
e.preventDefault();
e.stopPropagation();
})
document.getElementById("body").addEventListener("dragover",function(e){
e.preventDefault();
e.stopPropagation();
})
document.getElementById("body").addEventListener("dragenter",function(e){
e.preventDefault();
e.stopPropagation();
})
Sources:
Se fabriquer des outils Dev avec des bookmarklets... moui, mais la politique CORS va bloquer tout chargement de script extérieur à celui sur lequel on déclenche le bookmarklet, non ?!
Et ben si:
Je partage une petit truc vraiment tout con que je viens de tester pour une de mes applis de boulot.
J'avais besoin de confirmer vite fait et sans prise de tête le clic sur un lien «supprimer»: j'ai opté pour l'utilisation d'un attribut «confirm» et d'un bout de JS qui va bien.
Le code ci-dessous utilise ma petite betalib VanillaJS perso (http://cdn.warriordudimanche.net/VanillaJS.js) parce que j'avais la flemme de récrire la partie ciblage et foreach, mais vous aurez pigé le concept (c'est vraiment tout con)
<a href="https://warriordudimanche.net/?delete" confirm="true">Delete</a>
on('click','a[confirm]',function(e){
// La partie à mettre dans un évènement click
e.stopPropagation();
if (!confirm("Etes-vous certain ?")){
e.preventDefault();
return false;
}
});
L'avantage, c'est qu'il suffit de coller l'attribut «confirm» sur un lien pour qu'il ne soit activé qu'en cas de confirmation.
En complément du tuto de Grafikart sur les webcomponents: https://www.youtube.com/watch?v=lKm22TA5pzw
Tiens, je ne connaissais pas Element.closest()... Mais comment ais-je pu vivre jusqu'à maintenant ?!
J'avais vu passer un truc du genre et ça m'avait paru intéressant en effet... pour des petits projets.
Les animations dans canvas avec un projet «simple»: un solitaire.
Un jour, j'aurai le temps de regarder... un jour
Ha, ben je viens de comprendre l'intérêt des fonctions fléchées par rapport aux fonctions habituelles en JS... une fonction fléchée ne redéfinit pas le this.
voilà qui est intéressant et qui évite des jonglages avec des variables tampon quand on imbrique des trucs comme un gros babouin...
Oui, je sais, tout le monde s'en était aperçu à part moi, gnagnagna, «t'as les yeux couverts de peaux de saucisson» toussa...
Dire qu'aujourd'hui, il suffit d'ajouter
loading="lazy"
à une balise image pour implémenter le lazyload...
C'est beau.
Je retiens:
array.filter(boolean)
const person = { name: 'David Walsh', gender: 'Male' };
const tools = { computer: 'Mac', editor: 'Atom' };
const attributes = { handsomeness: 'Extreme', hair: 'Brown', eyes: 'Blue' };
const summary = {...person, ...tools, ...attributes};
/*
Object {
"computer": "Mac",
"editor": "Atom",
"eyes": "Blue",
"gender": "Male",
"hair": "Brown",
"handsomeness": "Extreme",
"name": "David Walsh",
}
*/
// Assuming "?post=1234&action=edit"
var urlParams = new URLSearchParams(window.location.search);
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1"
var getAbsoluteUrl = (function() {
var a;
return function(url) {
if(!a) a = document.createElement('a');
a.href = url;
return a.href;
};
})();
// Usage
getAbsoluteUrl('/something'); // https://davidwalsh.name/something
Créer un chat en JS (via une lib nommée Bugout )
Je me note ça pour jeter un oeil dessus...
L'usage de base consiste à imbriquer des variables dans les chaînes, entre ${ et }. Elles se verront "remplacées" par leur valeur au moment de l'exécution.
var kiwis = 3;
const message = `J'ai ${kiwis} kiwis dans mon panier`;
// Résultat : J'ai 3 kiwis dans mon panier
echo "Ma variable : $kiwis";