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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
| <!DOCTYPE html>
<html lang="fr" dir="ltr">
<head>
<!-- cache-control avec max-age=60 pour le développement uniquement -->
<meta http-equiv="cache-control" content="public, max-age=60">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<meta name="author" content="Daniel Hagnoul">
<title>Test</title>
<style>
*,
*:after,
*:before {
box-sizing: border-box;
}
/* CSS du test */
/* Fin CSS du test */
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.3/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.3/locale/fr.js"></script>
<script src="http://danielhagnoul.developpez.com/lib/dvjh/dvjhUtilities-1.5.1.js"></script>
<script>
'use strict';
document.addEventListener( "DOMContentLoaded", ev => {
// le DOM est construit, la page web n'est pas visible
moment.locale( "fr" );
klog( `DOM ready : ${ new kDvjhDate() }` );
// code du test
// fin code du test
}, false );
window.addEventListener( "load", ev => {
// le DOM est construit et la page web est visible
klog( `Window load : ${ new kDvjhDate() }` );
// code du test
/*
* Pour remplacer une partie d'un String
*/
String.prototype.replaceAt = function( index, replacement ){
return this.substr( 0, index ) + replacement + this.substr( index + replacement.length );
}
/*
* Générateur dévoilant un message lettre par lettre
*/
function* donneResponse( str ){
const
strLength = str.length;
let
message = str.replace( /[A-za-z0-9\u00C0-\u00FF]/g, "*" ), // \u00C0-\u00FF pour les à, é, è, etc.
arIndex = kBrouilleArray( Array.from( new Array( strLength ), ( item, i ) => i ) ); // dans dvjhUtilities-1.5.0.js
for ( const index of arIndex ){
if ( str[ index ] === " " ) continue;
yield message = message.replaceAt( index, str[ index ] );
}
}
/*
* Itérateur mettant en oeuvre le générateur donneMessage
*/
let response = donneResponse( "À Édouart 4 baron du néant" );
/*
* Gestionnaire d'événement "donne une lettre"
*/
const
elemDemo = document.querySelector( "#demo" ),
elemBtnIndice = document.querySelector( "#btnIndice" );
elemBtnIndice.addEventListener( "click", ev => {
let message = response.next();
if ( ! message.done ){
elemDemo.textContent = message.value;
} else {
elemDemo.setAttribute( "disabled", true );
}
}, false );
// fin code du test
kIDUnique();
}, false );
</script>
</head>
<body>
<main>
<p id="demo"></p>
<button id="btnIndice">Donner une lettre</button>
</main>
</body>
</html> |