J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.
5159 links
En effet, pas con.
Voici le script qui s'en charge :
{code
/ mise en place du copyright /
$(document).ready(function(){
$(document).on('copy',function(){
body=document.getElementsByTagName('body')[0];
selection=getSelection();
copyright=selection+"
© Le Télégramme - Plus d’information sur "+location.href;
copyElm=document.createElement('div');
body.appendChild(copyElm);
//copyElm.style.display='none';
copyElm.innerHTML=copyright;
selection.selectAllChildren(copyElm);
copyElm.style.left='-99999px';
setTimeout(function(){body.removeChild(copyElm)},0)
});
$(document).on('cut',function(){
$(document).trigger('copy');
});
});
code}
À la façon de PHP.
Direct dans mon snippetvamp.
Merci Geoffrey :D
Liste de scripts en pur javascript
Trop bien, merci KraZhtest !
Une collection de scripts en pur javascript. Miam :D
via Links lounge
Pas mal. Après, à voir si ce n'est pas trop lourd pour juste une animation...
Bibliothèque javascript sans dépendances pour créer des animations et transformer un élément en un autre.
Ils sont basés majoritairement (voire exclusivement) sur jquery.
The simplest thing to do in the absence of a framework that does all the cross-browser compatibility for you is to just put a call to your code at the end of the body. This is faster to execute than an onload handler because this waits only for the DOM to be ready, not for all images to load. And, this works in every browser.
<html>
<head>
</head>
<body>
Your HTML here
<script>
// self executing function here
(function() {
// your page initialization code here
// the DOM will be available here
})();
</script>
</body>
</html>
If you really don't want to do it this way and you need cross browser compatibility and you don't want to wait for window.onload, then you probably should go look at how a framework like jQuery implements it's $(document).ready() method. It's fairly involved depending upon the capabilities of the browser.
To give you a little idea what jQuery does (which will work wherever the script tag is placed), if supported, it tries the standard:
document.addEventListener('DOMContentLoaded', fn, false);
with a fallback to:
window.addEventListener('load', fn, false )
or for older versions of IE, it uses:
document.attachEvent("onreadystatechange", fn);
with a fallback to:
window.attachEvent("onload", fn);
And, there are some work-arounds in the IE code path that I don't quite follow, but it looks like it has something to do with frames.
Here is a full substitute for jQuery's .ready() written in plain javascript:
(function(funcName, baseObj) {
// The public function name defaults to window.docReady
// but you can pass in your own object and own function name and those will be used
// if you want to put them in a different namespace
funcName = funcName || "docReady";
baseObj = baseObj || window;
var readyList = [];
var readyFired = false;
var readyEventHandlersInstalled = false;
// call this when the document is ready
// this function protects itself against being called more than once
function ready() {
if (!readyFired) {
// this must be set to true before we start calling callbacks
readyFired = true;
for (var i = 0; i < readyList.length; i++) {
// if a callback here happens to add new ready handlers,
// the docReady() function will see that it already fired
// and will schedule the callback to run right after
// this event loop finishes so all handlers will still execute
// in order and no new ones will be added to the readyList
// while we are processing the list
readyList[i].fn.call(window, readyList[i].ctx);
}
// allow any closures held by these functions to free
readyList = [];
}
}
function readyStateChange() {
if ( document.readyState === "complete" ) {
ready();
}
}
// This is the one public interface
// docReady(fn, context);
// the context argument is optional - if present, it will be passed
// as an argument to the callback
baseObj[funcName] = function(callback, context) {
// if ready has already fired, then just schedule the callback
// to fire asynchronously, but right away
if (readyFired) {
setTimeout(function() {callback(context);}, 1);
return;
} else {
// add the function and context to the list
readyList.push({fn: callback, ctx: context});
}
// if document already ready to go, schedule the ready function to run
if (document.readyState === "complete") {
setTimeout(ready, 1);
} else if (!readyEventHandlersInstalled) {
// otherwise if we don't have event handlers installed, install them
if (document.addEventListener) {
// first choice is DOMContentLoaded event
document.addEventListener("DOMContentLoaded", ready, false);
// backup is window load event
window.addEventListener("load", ready, false);
} else {
// must be IE
document.attachEvent("onreadystatechange", readyStateChange);
window.attachEvent("onload", ready);
}
readyEventHandlersInstalled = true;
}
}
})("docReady", window);
The latest version of the code is shared publicly on GitHub at https://github.com/jfriend00/docReady
Usage:
// pass a function reference
docReady(fn);
// use an anonymous function
docReady(function() {
// code here
});
// pass a function reference and a context
// the context will be passed to the function as the first argument
docReady(fn, context);
// use an anonymous function with a context
docReady(function(context) {
// code here that can use the context argument that was passed to docReady
}, ctx);
This has been tested in:
IE6 and up
Firefox 3.6 and up
Chrome 14 and up
Safari 5.1 and up
Opera 11.6 and up
Multiple iOS devices
Multiple Android devices
Working implementation and test bed: http://jsfiddle.net/jfriend00/YfD3C/
Here's a summary of how it works:
1. Create an IIFE (immediately invoked function expression) to we can have non-public state variables.
2. Declare a public function {s{i docReady(fn, context)i}s}
3. When {s{i docReady(fn, context)i}s} is called, check if the ready handler has already fired. If so, just schedule the newly added callback to fire right after this thread of JS finishes with {s{i setTimeout(fn, 1).i}s}
4. If the ready handler has not already fired, then add this new callback to the list of callbacks to be called later.
5. Check if the document is already ready. If so, execute all ready handlers.
6. If we haven't installed event listeners yet to know when the document becomes ready, then install them now.
7. If {s{i document.addEventListener i}s} exists, then install event handlers using .addEventListener()i}s} for both {s{i "DOMContentLoaded" i}s} and {s{i "load" i}s} events. The {s{i "load" i}s} is a backup event for safety and should not be needed.
8. If {s{i document.addEventListener i}s} doesn't exist, then install event handlers using {s{i .attachEvent() i}s} for {s{i "onreadystatechange" i}s} and {s{i "onload" i}s} events.
9. In the {s{i onreadystatechange i}s} event, check to see if the {s{i document.readyState === "complete" i}s} and if so, call a function to fire all the ready handlers.
10. In all the other event handlers, call a function to fire all the ready handlers.
11. In the function to call all the ready handlers, check a state variable to see if we've already fired. If we have, do nothing. If we haven't yet been called, then loop through the array of ready functions and call each one in the order they were added. Set a flag to indicate these have all been called so they are never executed more than once.
12. Clear the function array so any closures they might be using can be freed.
Handlers registered with {s{i docReady() i}s} are guaranteed to be fired in the order they were registered.
If you call {s{i docReady(fn)i}s} after the document is already ready, the callback will be scheduled to execute as soon as the current thread of execution completes using setTimeout(fn, 1) i}s}. This allows the calling code to always assume they are async callbacks that will be called later, even if later is as soon as the current thread of JS finishes and it preserves calling order.
Que du bon. À lire absolument.
Une banque d'animations en css
Library for transition animations between blocks (pages) in an application
via : Marquetapages Shazen
Des tonnes d'astuces css, html ou javascript
Un parser pour Markdown en javascript. À tester.
Pour précompléter un input.
Voir également : http://lea.verou.me/2015/02/awesomplete-2kb-autocomplete-with-zero-dependencies/