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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Daniel Hagnoul" />
<title>Page type</title>
<style type="text/css">
body {
background-color:#696969;
color:#000000;
font-family:Arial, Helvetica, sans-serif;
font-size:medium;
font-style:normal;
font-weight:normal;
line-height:normal;
letter-spacing:normal;
}
h1,h2,h3,h4,h5 {
font-family:"Times New Roman", Times, serif;
}
div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
margin:0px;
padding:0px;
}
p {
padding:6px;
}
ul,ol,dl {
list-style:none;
padding-left:6px;
padding-top:6px;
}
li {
padding-bottom:6px;
}
div#conteneur {
width:95%;
margin:12px auto;
padding:6px;
background-color:#FFFFFF;
color:#000000;
border:1px solid red;
font-size:0.8em;
}
</style>
<!-- <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script> -->
<script type="text/javascript" src="../lib/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
(function($){
/*
* var id = "conteneur";
*
* Il faut fournir l'id d'une division qui ne peut pas contenir de <textarea> et/ou <input type="text">
* sinon le résultat varie avec le navigateur et il n'est pas conforme aux attendes.
*
* var type = "gm";
*
* Plusieurs possibilités : "g" ; "gi" ; "gm" ; "gim" voir la doc RegExp.
*
* Avec "gm" on remplace toutes les occurrences de la sélection,
* on préfère cette solution à "g" qui ne remplace que la première occurrence trouvée.
*
* Si la sélection est de plusieurs mots, il arrive que la mise en gras ne se fasse pas,
* principalement avec F3. Mais ce n'est pas systématique et la limite (Nb de char) est très variable.
*
* Testé avec IE8, F3 et C2.
*
*/
var id = "conteneur";
var type = "gm";
function mettreEnGras(texte){
var s = $.trim(texte);
if (s.length > 0) {
var sNouveau = "<span style='font-weight:bold;'>" + s + "</span>";
var re = new RegExp(s, type);
var elClone = $("#"+id).clone(true);
var html = elClone.html();
if (html != null) {
var newhtml = html.replace(re, sNouveau);
elClone.empty();
$(newhtml).appendTo(elClone);
$("#"+id).replaceWith(elClone);
}
}
}
$(document).ready(function(){
$("#btnGras").live("click", function(){
if (document.selection) {
var range = document.selection.createRange();
if (range.text.length > 0) {
mettreEnGras(range.text);
}
} else if (window.getSelection()) {
var selObj = window.getSelection();
console.log(selObj);
if (!selObj.isCollapsed) {
var range = selObj.getRangeAt(0);
mettreEnGras(range.toString());
}
}
});
});
})(jQuery);
</script>
</head>
<body>
<div id="conteneur">
<button id="btnGras" type="button" value="gras">Mettre la sélection en gras s'il vous plait.</button>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tincidunt pulvinar elit. Maecenas nec risus vitae felis suscipit scelerisque. Suspendisse placerat lorem ut nisl. Sed sit amet quam sit amet elit tempus eleifend. Aliquam posuere egestas elit. Donec porttitor, urna nec tincidunt rhoncus, tortor purus lacinia turpis, et pellentesque purus dui sed massa.
</p>
<div>
<p>Un texte dans une autre division.</p>
</div>
<textarea style="width:400px; height:200px;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce tincidunt pulvinar elit. Maecenas nec risus vitae felis suscipit scelerisque.</textarea>
<input style="width:600px; height:auto;" type="text" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit." />
</div>
</body>
</html> |
Partager