1. Определение положения курсора Code function getPosition(e) { e = e || window.event; var cursor = {x:0, y:0}; if (e.pageX || e.pageY) { cursor.x = e.pageX; cursor.y = e.pageY; } else { cursor.x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
cursor.y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop; } return cursor; } 2. Попап окно, которое выводиться по центру экрана Code nn4 = (document.layers) ? true : false; ie4 = (document.all) ? true : false; dom = (document.createTextNode)? true : false;
function popupWindow(fileUrl, winN, winWidth, winHeight, scrollB) { var winName = (winN)? winN : 'popupWin' var scrollBars = (scrollB)? scrollB : 'auto' if (nn4 || ie4 || dom) { if (screen.width < winWidth + 50) { winWidth = screen.width - 50; scrollbars = 'yes' } if (screen.height < winHeight + 100) { winHeight = screen.height - 100; scrollbars = 'yes' } posX = Math.round((screen.width - winWidth) / 2); posY = Math.round((screen.height - winHeight) / 2); posCode = (nn4)? "screenX="+posX+",screenY="+posY : "left="+posX+",top="+posY; } else { posCode = ""; } var popupWin = window.open(fileUrl, winName,"menubar=no, toolbar=no, scrollbars="+scrollB+", status=yes, resizable=no, width=" + winWidth + ", height=" + winHeight + " ," + posCode); if (popupWin) popupWin.focus(); } 3. Получение GET переменной по ее имени Code function getUrlVar(name) { name = name.replace(/[[]/,"[").replace(/[]]/,"]"); var regexS = "[?&]"+name+"=([^]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if(results == null) return ""; else return results[1]; } 4. Получение ассоциативного массива GET переменных Code function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; }
return vars; } 5. Универсальный валидатор форм Code function checkForm(obj, elems) { var element, pattern; for (var i = 0; i < obj.elements.length; i++) { // пробегаемся по всем элементам формы element = obj.elements[i]; // Проверяем только нужные поля if (elems != undefined) if (elems.join().indexOf(element.type) < 0) continue; // И только если есть чего говорить юзеру в случае ошибки if (!element.getAttribute("check_message")) continue; if (pattern = element.getAttribute("check_pattern")) { // если задан рег pattern = new RegExp(pattern, "g"); if (!pattern.test(element.value)) { alert("Пожалуйста, заполните правильно графу " + element.getAttribute("check_message")); element.focus(); return false; } } else if(/^s*$/.test(element.value)) { // иначе просто проверка что поле не пустое alert("Пожалуйста, заполните графу " + element.getAttribute("check_message")); element.focus(); return false; } } return true; }
// пример использования <form method="GET" action="script.htm" onSubmit="return checkForm(this)"> <input type="text" name="dummy"/>Не проверяется<br/> <input type="text" name="name" check_message="Имя"/>Имя<br> <input type="text" name="e-mail" check_pattern="^[w-]+(.[w-]+)*@([w-]+.)+[a-zA-Z]{2,7}$" check_message="Электронная почта"/>Электронная почта<br/> <textarea name="message" check_message="Сообщение"></textarea><br> <input type="submit" value="submit"/> </form> Автор статьи: Павел Марковнин
|