1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<meta http-equiv="cache-control" content="public, max-age=60">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Daniel Hagnoul">
<title>Test</title>
<style>
</style>
<script>
'use strict';
document.addEventListener( 'DOMContentLoaded', ev => {
}, false );
window.addEventListener( 'load', ev => {
// gestionnaire d'événement chBackColor
document.querySelector( "main" ).addEventListener( 'chBackColor', ev => {
ev.target.style.backgroundColor = "grey";
setTimeout( () => {
ev.target.style.backgroundColor = "white";
}, 300 );
}, false );
// utilisation de MutationObserver sur le tag OL
const
list = document.querySelector( "#listId" ),
observer = new MutationObserver( mutations => {
mutations.forEach( mutation => {
console.log( mutation.type );
// action : liste les éléments de l'OL dans la console (touche F12)
if ( mutation.type === 'childList' ){
let list_values = [].slice.call( list.children )
.map( node => node.innerHTML )
.filter( s => {
if ( s === '<br />') {
return false;
}
else {
return true;
}
});
console.log( list_values );
// déclencher l'événement chBackColor
document.querySelector( "main" ).dispatchEvent( new Event( "chBackColor" ) );
}
});
}),
config = {
attribute : true,
childList : true,
characterData : true
};
observer.observe( list, config );
}, false );
</script>
</head>
<body>
<main>
<ol id="listId" contenteditable>
<li>Press enter</li>
</ol>
</main>
</body>
</html> |
Partager