9 марта 2010, 18:07 более 4-х месяцев назад
Конвертируем в ASCII неведомые символы для cp1251 и копируем в буфер
Для того что бы конвертить неведомые символы, мы должны их отCharCodить, но функция конвертит всё подряд, поэтому мы предварительно составляем массив наших символов, и если не наши, мы их через ASCII-код выдаём :)
зы: прикрутил сразу туда же ZeroClipboard :)
cp1251 = [33,34,35,36,37,38,39,40,41,42,43,44,45,46,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,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,125,126,1025,1028,1030, 1031,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051, 1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064, 1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077, 1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090, 1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103, 1108,1110,1111,8470]; function in_array(myValue,myArray){ function equals(a,b){return (a === b);} for (var i in myArray) if (equals(myArray[i],myValue)) return true; return false; } function fetchAscii(){ var obj = document.getElementById("converter").value, convertedObj = '', converted = document.getElementById("converted"); var _length = obj.length; for(i = 0; i < _length; i++) convertedObj += (in_array(obj.charCodeAt(i),cp1251) ? '&#' : '&#') + obj.charCodeAt(i) + ';'; converted.innerHTML = convertedObj; return false; }
зы: прикрутил сразу туда же ZeroClipboard :)
var clip = new ZeroClipboard.Client(); clip.setHandCursor( true ); clip.addEventListener('mouseOver', function(clip){ clip.setText( document.getElementById("converted") .innerHTML .split("&") .join("&")) } ); clip.glue("copy");Особенность в том, что текст, который копируется, постоянно изменяется, то есть динамический %)