Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 240, средняя оценка - 4.63
Vovan-VE
13148 / 6531 / 1038
Регистрация: 10.01.2008
Сообщений: 15,071
#1

FAQ по JavaScript - JavaScript

19.07.2010, 18:55. Просмотров 31851. Ответов 17

Как запретить пользователю просмотреть код страницы?
Никак.
Существующие способы, базирующиеся на языке JavaScript, не позволяют достичь принципиальной защиты. Они приемлемы лишь для защиты от неопытных пользователей.

Как с помощью JavaScript подгрузить произвольный file.js?
Javascript
1
2
3
<script language="JavaScript">
document.write("<"+"script language=\"JavaScript\" src='...'></"+"script>");
</script>
тег </script> необходимо разбить, чтобы браузер не думал, что внешний скрипт закончился на этом теге.

Как работать с cookie?
Cookie позволяют хранить данные подобно глобальным переменным. Работать с cookie можно с помощью таких функций:
Javascript
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
/**
 * cookieName - имя cookie
 * cookieContent - что записываем
 * cookieExpireTime - сколько времени будут жить cookie в часах. Если 0 - то помрут вместе с закрытием браузера.
 */
function setCookie(cookieName, cookieContent, cookieExpireTime){
    if(cookieExpireTime>0){
        var expDate=new Date();
        expDate.setTime(expDate.getTime()+cookieExpireTime*1000*60*60);
        var expires=expDate.toGMTString();
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"; expires="+expires;
    }else{
        document.cookie=cookieName+"="+escape(cookieContent)+"; path="+escape('/')+"";
    }
}
 
function getCookie(cookieName){
    var ourCookie=document.cookie;
    if(!ourCookie || ourCookie=="")return "";
    ourCookie=ourCookie.split(";");
    var i=0;
    var Cookie;
    while(i<ourCookie.length){
        Cookie=ourCookie[i].split("=")[0];
        if(Cookie.charAt(0)==" ")
                Cookie=Cookie.substring(1);
        if (Cookie == cookieName){
            var res = ourCookie[i].split('=')[1];
            return (typeof res != 'undefined') ? unescape(res) : '';
        }
        i++;
    }
    return "";
}
Как запросить подтверждение у пользователя при переходе по ссылке?
HTML5
1
<a href="url" onclick="return confirm('Уверены?')">...</a>
Как отследить события клавиатуры?
Рассмотрим это на примере отслеживания нажатия кнопки "S"
Javascript
1
2
3
4
function kdown(e){ 
    if (e.keyCode == 'S'.charCodeAt(0)) alert('S pressed');
}
document.onkeydown=kdown;
Не получается обратиться к свойству другого фрейма/окна.
Если содержимое другого фрейма (окна) представляет собой документ с чужого сервера (домена), то ничего сделать нельзя из соображений безопасности. Если странички лежат на разных поддоменах (например, a.site.ru и b.site.ru) и вы имеете доступ до тех и других, пропишите в них document.domain="site.ru"

Соображения безопасности тут такие: К примеру, вы работаете с каким-нибудь администраторским интерфейсом или читаете почту через веб-форму. Некто присылает вам ссылку "приколись, чувак, новый секретный мультик про Масяню", вы открываете ее, а там страница, которая грузит к себе во фрейм этот самый ваш запароленный интерфейс и делает с ним, что хочет - ведь браузер запомнил ваш пароль.

Может быть, что вы просто неправильно пишете путь к фрейму. Правильный путь
top.название_окна.frames.имя_фрейма . Если окно - текущее, то название окна можно опустить, получится top.frames.имя_фрейма .

У меня сайт с фреймами, но человек может загрузить какой-то фрейм отдельно. Как подсунуть ему фреймсет?
У объекта window есть свойства parent и top, которые ссылаются на содержащие его окна (top ссылается на окно самого верхнего уровня). Если страница загружена не во фреймсете, эти свойства ссылаются на само окно.

В результате получаем что-то вроде
Javascript
1
if(parent==this) location="адрес страницы с фреймсетом";
Также, у окна есть свойство frames, ссылающееся на массив фреймов. Если мы уверены, что страницы, подгружающиеся во фреймы основного окна сайта, не являются в свою очередь фреймсетами - можно проверить parent.frames.length . В этом случае получится следующее
Javascript
1
if(!parent.frames.length) location="адрес страницы с фреймсетом";
О том, как сделать, чтобы в этом фреймсете открывалась нужная страница, читайте здесь.

Все вышесказанное касается и страниц, подгружаемых в iframe.

Как передать параметр в загружаемый документ и прочитать его там?
Через строку запроса, как это происходит при передаче данных серверу методом GET. Можно написать
HTML5
1
<a href="file.html?123">
тогда в файле file.html можно будет прочитать переменную location.search, которая будет содержать "?123". Остается взять часть строки со второго по счету символа: location.search.substring(1).

Для передачи нескольких параметров, к примеру так: file.html?x=1&y=2, можно предложить несложную функцию, которая, будучи записана в file.html, вернет значение переменной с указанным именем:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getVariable(varName){
        var arg=location.search.substring(1).split('&');
        var variable="";
        var i;
        for(i=0;i<arg.length;i++){
                if(arg[i].split('=')[0]==varName){
                        if(arg[i].split('=').length>1){
                                variable=arg[i].split('=')[1];
                        }
                        return variable;
                }
        }
        return "";
}
Как вызвать функцию JavaScript при нажатии на ссылку или кнопку в форме?
Можно записать в атрибут HREF тега <A> вызов кода JavaScript:
HTML5
1
<a href="javascript:f()">
Либо можно записать код JavaScript в атрибуты обработчиков событий, например onclick, onmouseover, onsubmit. При этом префикс "javascript:" писать не следует.

Если хочется, чтобы вызов события не привел к действию, например нажатие на ссылку не привело к переходу по ней, следует возвратить false, иначе возвратить true.

Пример:
HTML5
1
 <a href="target.html" onclick="alert('HELLO'); return false">
при нажатии на ссылку переход по ней осуществлен не будет, вместо этого появится окошко со словом "HELLO". Но если открыть эту ссылку в новое окно, то загрузится target.html.

Можно, к примеру, сделать проверку правильности заполнения формы:
HTML5
1
<form action="" onsubmit="return check()">
Функция check() должна будет либо вернуть true, тогда форма отправится, либо false, тогда нет.

По поводу протокола javascript:
  1. javascript: есть протокол (как http:, mailto: и т. д.)
  2. ссылка c javascript-протоколом имеет вид javascript:выражение (в отличие от event handler'oв - не содержимое функции, поэтому она не может содержать return)
  3. при клике на эту ссылку браузер поступает следующим образом:
    1. вычисляет выражение. Если имеются побочные эффекты (напр. window.open), они выполняются
    2. если выражение возвращает результат, отличный от undefined...
    3. ...результат преобразуется к типу string и используется в качестве контента для новой страницы (введите, к примеру, в адресную строку javascript:1+1)

Почему у меня не получается впечатать в документ с помощью document.write SSI-инструкцию?
Вопрос:
Я пытаюсь впечатать в документ SSI-инструкцию такой строчкой:
Javascript
1
document.write("<!--#include virtual=\""+file+".shtml\" -->");
но она почему-то не исполняется? Что я делаю неправильно?
Ответ:
Дело в том, что SSI (Server Side Includes) исполняются на сервере. Т.е. когда сервер уже отдал документ клиентскому браузеру, то он (сервер) уже не властен над этим документом. И когда вы пытаетесь впечатать в документ SSI-инструкцию, ее уже некому исполнять.

Как убрать оформление текущего окна?
Никак. Если не считать различных "хакерских" трюков, работающих в отдельных браузерах на отдельных платформах.

Как запретить выделение текста мышкой?
MSIE:
HTML5
1
<body onselectstart="return false">
Mozilla:
Javascript
1
document.onmousedown=function(){return false}
или указав для body стиль -moz-user-select: none

Работа с textarea. Как переместить каретку? Как получить выделенный текст?
Чистое javascript-решение возможно только в MSIE 4 и выше. Для манипуляций с выделенной областью существует объект TextRange. Пример:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<textarea id="myTextArea">The text</textarea> 
<button onclick="test()">Test</button> 
<script> 
function test() 
{
    var myTextArea = document.getElementById('myTextArea');
    // убедиться, что каретка находится в текстовом поле 
    myTextArea.focus(); 
    // создать объект TextRange на основе текущего выделения 
    var rng=document.selection.createRange(); 
    // расширить выделение на 3 символа вправо 
    rng.moveEnd('character',3); 
    // сделать выделение текущим 
    rng.select(); 
    // достать выделенный текст 
    alert(rng.text); 
}
</script>
Как распечатать один из фреймов?
Если просто написать
Javascript
1
top.frames[3].print();
то, скорее всего, распечатается не тот фрейм, который нужен. Необходимо сначала передать нужному фрейму фокус, после чего можно вызывать функцию print всего окна:
Javascript
1
2
top.frames[3].focus();
top.print();
Как заменить перенос строки на <BR>?
На Windows перевод строки - это два символа \r\n (коды 13 и 10), на Юниксах - один символ: \n, под Макинтош - \r. Учитывая все три варианта:
Javascript
1
myText = myText.replace(/\r\n?|\n/g,"<br>");
Как приостановить выполнение скрипта?
Если программе нужно что-то сделать позже, можно установить для этого таймаут:
Javascript
1
2
3
4
5
6
7
8
function task1() {
  // Здесь что-то делаем, после чего надо подождать пару секунд
  setTimeout("task2()", 2000);
}
 
function task2() {
  // Продолжаем выполнение после двухсекундной задержки
}
Как заставить скрипт выполняться много раз через определенное время?
Если интервал повтора всегда одинаковый, то следует воспользоваться функцией setInterval():
Javascript
1
2
3
4
5
function func() {
    // что-то делаем
}
// регистрируем периодический вызов функции через 1 секунду
setInterval("func()", 1000);
Как отменить назначенный таймаут/интервал (setTimeout/setInterval)?
Функции setTimeout() и setInterval() возвращают число, которое является идентификатором созданного таймаута/интервала. Этот идентификатор можно использовать в функциях clearTimeout() и clearInterval() для отмены setTimeout() и setInterval() соответсвенно.

Пример:
Javascript
1
2
3
4
5
6
function test() {
    // этот код не будет выполнен
    alert();
}
var N = setTimeout("test()", 5000);
clearTimeout(N);
Для чего в JavaScript используется символ "$" ?
Символ $ в JavaScript является "буквой". Его можно использовать на равне в латинскими буквами в именах переменных, функций и т.п. Примеры:
Javascript
1
2
3
4
var a$ = 1, $b = 2, $c$ = 3, d$ = 4, $$$ = 5, $ = 6;
function $f() {
    return;
}

По материалам Xpoint
http://www.cyberforum.ru/javascript/thread210035.html
38
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2010, 18:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос FAQ по JavaScript (JavaScript):

Выполнение Javascript файла в котором присутствуют javascript теги
text1.js &lt;link...

Выпадающие дивы для FAQ
Добрый день! Нашел вот такое решение для реализации &quot;выпадающих дивов&quot; для...

Как перезагрузить javascript, javascript-ом?
как с помощью javascript перезагрузить javascript ? Смысл в том что один из...

Javascript (codeacademy - "'WHILE' LOOPS IN JAVASCRIPT(Dragon Slayer!)")
Пожалуйста, помогите прочитать этот код!!! var slaying = true; // A bit of...

javascript внутри javascript
Здравствуйте. Помогите решить задачу. Нужно на html странице под спойлером в...

17
Unick
не Администратор ^_^
985 / 219 / 23
Регистрация: 03.05.2009
Сообщений: 1,479
Записей в блоге: 1
05.08.2010, 01:22 #2
Еще полезно почитать
http://www.tigir.com/javascript.htm
7
Unick
не Администратор ^_^
985 / 219 / 23
Регистрация: 03.05.2009
Сообщений: 1,479
Записей в блоге: 1
30.01.2011, 10:51 #3
Полезно:
Чтобы ваш js не могли прочитать 75% посетителей, отключите правую кнопку мышки =Р
4
Vovan-VE
13148 / 6531 / 1038
Регистрация: 10.01.2008
Сообщений: 15,071
30.01.2011, 12:37  [ТС] #4
Цитата Сообщение от Unick Посмотреть сообщение
Чтобы ваш js не могли прочитать 75% посетителей, отключите правую кнопку мышки =Р
А эти 75% вообще подозревают ли о том, что у страницы в принципе есть исходник(и)?

Настройки безопасности - [_] Позволять контролировать правую кнопку мыши.
1
Hagrael
БТР - мой друг
331 / 273 / 47
Регистрация: 07.01.2010
Сообщений: 1,932
26.02.2011, 15:17 #5
Можно писать $ перед переменной, если она - это объект-обертка какого-либо фреймворка.
0
Vynder
19 / 19 / 5
Регистрация: 30.03.2011
Сообщений: 97
01.04.2011, 22:16 #6
дайте название учебников для JavaScripts для начинающих
0
Kdn
307 / 165 / 25
Регистрация: 07.02.2011
Сообщений: 319
02.04.2011, 01:52 #7
Vynder, Список книг по JavaScript
11
GuardCat
Просто любитель
618 / 458 / 118
Регистрация: 20.01.2011
Сообщений: 862
Записей в блоге: 2
08.11.2011, 15:43 #8
Как скомпилировать JavaScript в exe? Как защитить JavaScript код от просмотра?
- - - Часто возникает этот вопрос, решил, что в FAQ он будет уместен, чтобы ссылаться на него из других тем.
- - - Сразу оговорюсь, что это решение подходит для настольного, а не сетевого использования вашего приложения. Например, вы делаете клиент для вконтакте, или тест, который пользователь будет запускать как обычную программу. Если для вас javascript интересен сам по себе и с другими языками программирования вы не дружите, то предложенный вариант вам подойдёт отлично.
1. Создайте файл HTML с вашей разметкой и кодом. Смените его расширение на .hta. Теперь это настольное приложение, и выполняется в системе windows (да, это не кроссистемное решение) со всеми правами, которые даются настольному приложению. То есть, ни работа с реестром, ни работа с файловой системой (через ActiveX) не приведёт к выдаче вопросов безопасности пользователю. Кстати, здесь работает объект WScript, с помощью которого можно делать ещё более интересные вещи, чем те, которые возможно делать в браузере. Чуть детальнее, смотрите статьи по WSH и HTA в wikipedia. Ещё детальнее — google в помощь.

2. Скомпилируйте его в exe. И первый и второй шаг я обычно делаю этой прогой. Во вложении она же, на случай проблем на оф.сайте. Программа платная, но с вечным триалом.
Плюсы варианта:
  1. Делай что хочешь (запуск приложений, закрытие процессов, удаление/запись ключей реестра, работа с файлами, как на чтение/запись, так и на копирование/удаление, работа с дисками и т.д.) без запросов о безопасности.
  2. Легко и привычно делать интерфейс и программную составляющую.
  3. Исполняется на любой винде. (Wine на Linux не опробован, кто имеет возможность — протестируйте).
  4. Доступ к сети (через iexplorer).

Минусы:
  1. MSIE! JScript!
  2. Не сетевое приложение (хотя, подозреваю, можно и сетевым его сделать при наличии изворотливости).
  3. При компиляции, размер итогового файла превышает размер исходника. Сильно. До 20 раз. 4-х килобайтный исходник подрастает до 84 килобайт.

Надеюсь, информация окажется полезной.
11
Вложения
Тип файла: zip vbsedit.zip (7.48 Мб, 79 просмотров)
GuardCat
Просто любитель
618 / 458 / 118
Регистрация: 20.01.2011
Сообщений: 862
Записей в блоге: 2
21.12.2011, 14:12 #9
Как защитить код JavaScript от просмотра и изменения? (дополнение)
Столкнулся с очень жёстким обфускатором, который может оказаться кому-то полезен. Пример
обфускации:
До
Javascript
1
2
3
var a = 1;
var b = 2;
alert(a + b);
После
Javascript
1
$=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+"\\"+$.__$+$.$$_+$.$$_+$.$_$_+"\\"+$.__$+$.$$_+$._$_+"\\"+$.$__+$.___+$.$_$_+"\\"+$.$__+$.___+"=\\"+$.$__+$.___+$.__$+";\\"+$.__$+$._$_+"\\"+$.__$+$.$$_+$.$$_+$.$_$_+"\\"+$.__$+$.$$_+$._$_+"\\"+$.$__+$.___+$.$_$$+"\\"+$.$__+$.___+"=\\"+$.$__+$.___+$._$_+";\\"+$.__$+$._$_+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"("+$.$_$_+"\\"+$.$__+$.___+"+\\"+$.$__+$.___+$.$_$$+");"+"\"")())();
_____ Обращаю ваше внимание, что второй вариант — валидный и работающий код JavaScript. Можете попробовать скопировать его в консоль. Тут бьютифайером не обойдёшься...
_____ Обфускатор находится тут.
На случай проблем с хостингом сервиса, я сохранил страницу — она вполне работоспособна и в оффлайне. Архив во вложении.
12
Вложения
Тип файла: zip jjencode.zip (149.6 Кб, 108 просмотров)
newJS
2395 / 1068 / 307
Регистрация: 23.06.2011
Сообщений: 3,330
17.06.2012, 11:41 #10
Как запретить выделение текста мышкой?
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Как запретить выделение текста мышкой?
Более полный вариант:
Все это защита от бабушек закончивших бесплатные курсы.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
onselectstart="return false"
 Пишем этот атрибут в body:
<body onselectstart="return false">
 Работает в Internet Explorer, Safari, Google Chrome.
 Для Mozilla Firefox добавляем в CSS такой стиль:
-moz-user-select:none;
 Хотя в Safari и Google Chrome работает атрибут onselectstart, для этих браузеров тоже есть стиль.
-khtml-user-select:none;
 Для Opera есть кошмарное решение.
unselectable="on"
 Кошмарность этого атрибута в том, что его необходимо прописывать в каждом теге!!!
И даже в этом случае текст можно выделить начав выделение с не защищенного текста или выделить все.



Запретить меню по правой кнопке:
Запретить меню по правой кнопке:
Сам запрет мало что дает, есть горячие клавиши, НО если хотите вывести свое меню, то без этого запрета не обойтись.
HTML5
1
2
3
4
5
6
7
8
9
10
oncontextmenu="return false"
 Сей код можно использовать двояко:
<body oncontextmenu="return false">
 Недостаток, все браузеры, кроме Mozilla Firefox, не блокируют правую кнопку на полях, а на коротких страницах блокируется только там, где есть контекст, то есть, если контекста мало, то ниже можно свободно щёлкнуть.
Заблокировать отступы можно так, обнуляем в body поля и выставляем отступы:
<body style="margin:0; padding:15px;">.
 На коротких страницах сей чудненький код нужно поместить не в тег body, а в тег html, вот так:
<html oncontextmenu="return false">
 В этом случае ни чего не нужно переопределять в body, и во всех браузерах полностью блокируется правая кнопка, но ругается валидатор, лень перепроверять, но валидатор скорее всего ругается в зависимости от доктайпа, по идее не должен при этом
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
.
6
GuardCat
Просто любитель
618 / 458 / 118
Регистрация: 20.01.2011
Сообщений: 862
Записей в блоге: 2
15.04.2013, 22:10 #11
Как уменьшить количество ошибок в коде? Как сделать код профессиональнее?
Отличный ресурс по важным моментам на русском.Читать и помнить.
1
Илья Федин
Бог живет в /root
884 / 350 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
24.04.2013, 15:16 #12
Если я не могу запретить пользователю просмотреть код страницы, то можно ли хоть как нибудь его например закодировать?
Да. Есть кодировщик который сделает исходник не читаемым: http://chulanchik.ucoz.com/news/2012-05-08-778
До:
HTML5
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
<!doctype html>
<html>
 <head>
   <base href="http://jamespatrick.ru/admin/">
  <title>Управление сайтом James Patrick | Заказы</title>
  <meta name="document-state" content="static" />
  <link type="text/css" rel="stylesheet" media="all" href="css/main.css" />
<link rel="stylesheet" type="text/css" href="css/iswitch.css">
<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox.css">  <script type="text/javascript" src="fancybox/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="fancybox/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="fancybox/jquery.fancybox-1.2.1.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() { 
$("a.first").fancybox(); 
$("a.two").fancybox(); 
$("a.video").fancybox({"frameWidth":520,"frameHeight":400}); 
$("a.content").fancybox({"frameWidth":600,"frameHeight":300}); 
});
</script>
 </head>
 <body><table class="features-table">
   <thead>
    <tr>
     <td><p align="left"><a href="http://jamespatrick.ru/">jamespatrick.ru</a>/<a href="index.php">admin</a>/CallMe</p><div id="normal-button-bottom" class="settings-button"><images src="img/icon-cog-small.png" /></div></td>
     <td>Дата</td>
     <td>Имя</td>
     <td>Комментарии</td>
    </tr>
   </thead>     
   <tbody>
    <tr>
     <td colspan="10"><a href="index.php">..</a></td>   
    </tr>
   </tbody>
  </table>  
 </body>
</html>
После:
Javascript
1
document.write(decodeURIComponent("%3C!doctype%20html%3E%0A%3Chtml%3E%0A%20%3Chead%3E%0A%20%20%20%3Cbase%20href%3D%22http%3A%2F%2Fjamespatrick.ru%2Fadmin%2F%22%3E%0A%20%20%3Ctitle%3E%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%BC%20James%20Patrick%20%7C%20%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B%3C%2Ftitle%3E%0A%20%20%3Cmeta%20name%3D%22document-state%22%20content%3D%22static%22%20%2F%3E%0A%20%20%3Clink%20type%3D%22text%2Fcss%22%20rel%3D%22stylesheet%22%20media%3D%22all%22%20href%3D%22css%2Fmain.css%22%20%2F%3E%0A%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%20href%3D%22css%2Fiswitch.css%22%3E%0A%3Clink%20rel%3D%22stylesheet%22%20type%3D%22text%2Fcss%22%20href%3D%22fancybox%2Fjquery.fancybox.css%22%3E%20%20%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22fancybox%2Fjquery-1.3.2.min.js%22%3E%3C%2Fscript%3E%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22fancybox%2Fjquery.easing.1.3.js%22%3E%3C%2Fscript%3E%0A%3Cscript%20type%3D%22text%2Fjavascript%22%20src%3D%22fancybox%2Fjquery.fancybox-1.2.1.pack.js%22%3E%3C%2Fscript%3E%0A%3Cscript%20type%3D%22text%2Fjavascript%22%3E%0A%24(document).ready(function()%20%7B%20%0A%24(%22a.first%22).fancybox()%3B%20%0A%24(%22a.two%22).fancybox()%3B%20%0A%24(%22a.video%22).fancybox(%7B%22frameWidth%22%3A520%2C%22frameHeight%22%3A400%7D)%3B%20%0A%24(%22a.content%22).fancybox(%7B%22frameWidth%22%3A600%2C%22frameHeight%22%3A300%7D)%3B%20%0A%7D)%3B%0A%3C%2Fscript%3E%0A%20%3C%2Fhead%3E%0A%20%3Cbody%3E%3Ctable%20class%3D%22features-table%22%3E%0A%20%20%20%3Cthead%3E%0A%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%3Ctd%3E%3Cp%20align%3D%22left%22%3E%3Ca%20href%3D%22http%3A%2F%2Fjamespatrick.ru%2F%22%3Ejamespatrick.ru%3C%2Fa%3E%2F%3Ca%20href%3D%22index.php%22%3Eadmin%3C%2Fa%3E%2FCallMe%3C%2Fp%3E%3Cdiv%20id%3D%22normal-button-bottom%22%20class%3D%22settings-button%22%3E%3Cimages%20src%3D%22img%2Ficon-cog-small.png%22%20%2F%3E%3C%2Fdiv%3E%3C%2Ftd%3E%0A%20%20%20%20%20%3Ctd%3E%D0%94%D0%B0%D1%82%D0%B0%3C%2Ftd%3E%0A%20%20%20%20%20%3Ctd%3E%D0%98%D0%BC%D1%8F%3C%2Ftd%3E%0A%20%20%20%20%20%3Ctd%3E%D0%9A%D0%BE%D0%BC%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%80%D0%B8%D0%B8%3C%2Ftd%3E%0A%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%3C%2Fthead%3E%20%20%20%20%20%0A%20%20%20%3Ctbody%3E%0A%20%20%20%20%3Ctr%3E%0A%20%20%20%20%20%3Ctd%20colspan%3D%2210%22%3E%3Ca%20href%3D%22index.php%22%3E..%3C%2Fa%3E%3C%2Ftd%3E%20%20%20%0A%20%20%20%20%3C%2Ftr%3E%0A%20%20%20%3C%2Ftbody%3E%0A%20%20%3C%2Ftable%3E%09%0A%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E"));
Как видно ничего не понятно
1
newJS
2395 / 1068 / 307
Регистрация: 23.06.2011
Сообщений: 3,330
12.07.2013, 21:16 #13
События в браузере

Следует помнить, не все события имеются во всех браузерах, нужно проверять.
Кликните здесь для просмотра всего текста
HTML5
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<title>События в брузере</title>
<style type="text/css">
body {background:window;}
#slyTaBlya {border-collapse:collapse;}
#slyTaBlya td, #slyTaBlya th {border:1px solid black; vertical-align:top;}
#slyTaBlya td, #slyTaBlya th {padding:1px 5px 3px 5px;}
#slyTaBlya th {cursor:pointer; text-align:left; font-weight:normal; color:maroon;}
#slyTaBlya th:hover {background:lavender;}
div {padding:0 0 5px 0;}
</style>
<script type="text/javascript">
onload=function(){
var m, k;
m=document.getElementById("slyTaBlya").getElementsByTagName("th");
k=m.length;
while(k--){m[k].onclick=clik;};
 };
 
function clik(){
var obj, r, s;
if(document.createRange){
r=document.createRange();
r.selectNode(this);
s=window.getSelection();
s.removeAllRanges();
s.addRange(r);}
else{r=document.body.createTextRange();
r.moveToElementText(this);
r.select();
r.execCommand("Copy");};//осёл копирует в буфер
 };
</script>
</head>
 
<body>
 
<div>Для выделения события кликнуть по ячейке. ИЕ сразу сам копирует в буфер, остальные только выделяют, дальше сами копируем по правой кнопке.</div>
<table id="slyTaBlya"><tr>
<td>1</td>
<th>onabort</th>
<td>событие abort происходит, когда пользователь прерывает загрузку графического изображения</td>
</tr><tr>
<td>2</td>
<th>onactivate</th>
<td>событие activate происходит, когда элемент страницы получает фокус ввода</td>
</tr><tr>
<td>3</td>
<th>onafterprint</th>
<td>событие afterPrint происходит сразу после вывода на принтер или предварительный просмотр текущей Web-страницы</td>
</tr><tr>
<td>4</td>
<th>onafterupdate</th>
<td>событие afterUpdate происходит после того, как данные будут перенесены из элемента управления в соответствующее поле базы данных (доступно только для элементов управления, привязанных к данным)</td>
</tr><tr>
<td>5</td>
<th>onbeforeactivate</th>
<td>событие beforeActivate происходит перед тем как элемент становится активным</td>
</tr><tr>
<td>6</td>
<th>onbeforecopy</th>
<td>событие beforeCopy происходит перед копированием данных из текущего элемента страницы в буфер обмена Windows</td>
</tr><tr>
<td>7</td>
<th>onbeforecut</th>
<td>событие beforeCut происходит перед переносом данных из текущего элемента страницы в буфер обмена Windows</td>
</tr><tr>
<td>8</td>
<th>onbeforedeactivate</th>
<td>событие beforeDeActivate происходит перед потерей фокуса текущим элементом страницы</td>
</tr><tr>
<td>9</td>
<th>onbeforeeditfocus</th>
<td>событие beforeEditFocus происходит перед переходом элемента страницы в режим редактирования (доступно только если свойство designMode установлено в on)</td>
</tr><tr>
<td>10</td>
<th>onbeforepaste</th>
<td>событие beforePaste происходит непосредственно перед вставкой данных из буфера обмена в текущий элемент страницы (значение false разрешает, т.к. в этом случае мы отменяем поведение меню по умолчанию.)</td>
</tr><tr>
<td>11</td>
<th>onbeforeprint</th>
<td>событие beforePrint происходит перед выводом на принтер или предварительным просмотром текущей Web-страницы</td>
</tr><tr>
<td>12</td>
<th>onbeforeunload</th>
<td>событие beforeUnload происходит перед выгрузкой страницы при переходе на другую страницу или закрытия окна</td>
</tr><tr>
<td>13</td>
<th>onbeforeupdate</th>
<td>событие beforeUpdate происходит перед переносом данных из элемента управления в соответствующее поле базы данных (доступно только для элементов управления, привязанных к данным)</td>
</tr><tr>
<td>14</td>
<th>onblur</th>
<td>событие blur происходит, когда элемент теряет фокус ввода</td>
</tr><tr>
<td>15</td>
<th>onbounce</th>
<td>событие bounce происходит, когда бегущая строка достигла границы и меняет направление</td>
</tr><tr>
<td>16</td>
<th>oncellchange</th>
<td>событие cellChange происходит, когда изменяются данные, находящиеся в базе данных</td>
</tr><tr>
<td>17</td>
<th>onchange</th>
<td>событие change происходит при потере элементом фокуса ввода, если его значение было изменено с момента получения фокуса (этот атрибут может использоваться в тегах &lt;input&gt;, &lt;select&gt;, &lt;textarea&gt;)</td>
</tr><tr>
<td>18</td>
<th>onclick</th>
<td>событие click происходит при однократном щелчке мыши по элементу</td>
</tr><tr>
<td>19</td>
<th>oncontextmenu</th>
<td>событие contextMenu происходит, когда пользователь щелкает правой кнопкой мыши в клиентской области браузера для вызова контекстного меню</td>
</tr><tr>
<td>20</td>
<th>oncontrolselect</th>
<td>событие controlSelect происходит при попытке пользователя выбрать элемент страницы, имеющий собственный пользовательский интерфейс</td>
</tr><tr>
<td>21</td>
<th>oncopy</th>
<td>событие copy происходит при копировании в буфер обмена</td>
</tr><tr>
<td>22</td>
<th>oncut</th>
<td>событие cut происходит при переносе данных из текущего элемента страницы в буфер обмена Windows</td>
</tr><tr>
<td>23</td>
<th>ondataavailable</th>
<td>событие dataAvailable происходит, когда очередная партия данных переносится из базы данных на Web-страницу</td>
</tr><tr>
<td>24</td>
<th>ondatasetchanged</th>
<td>событие dataSetChanged происходит когда данные в базе данных изменяются, а также когда начальная порция данных готова для переноса на Web-страницу</td>
</tr><tr>
<td>25</td>
<th>ondatasetcomplete</th>
<td>событие dataSetComplete происходит, когда все данные перенесены из базы данных на Web-страницу</td>
</tr><tr>
<td>26</td>
<th>ondblclick</th>
<td>событие dblClick происходит при двойном щелчке мыши по элементу</td>
</tr><tr>
<td>27</td>
<th>ondeactivate</th>
<td>событие deActivate происходит при потере фокуса текущим элементом страницы</td>
</tr><tr>
<td>28</td>
<th>ondrag</th>
<td>событие drag происходит сразу же после события onDragStart и постоянно присутствует при процессе операции перетаскивания</td>
</tr><tr>
<td>29</td>
<th>ondragdrop</th>
<td>событие dragDrop происходит, когда пользователь &quot;бросает&quot; в окно Web-обозревателя ссылки на интернет-адреса<br>
Параметры:<br>
type - тип события<br>
target - ссылка на элемент страницы, где оно наступило<br>
data - массив строк, каждая из которых содержит &quot;брошенный&quot; в окно адрес<br>
modifiers - модификаторы, указывающие, какая клавиша на клавиатуре была при этом нажата<br>
screenX и screenY - экранные координаты курсора мыши</td>
</tr><tr>
<td>30</td>
<th>ondragend</th>
<td>событие dragEnd происходит, если пользователь закончил перетаскивать объект, независимо от того, где закончилась операция перетаскивания</td>
</tr><tr>
<td>31</td>
<th>ondragenter</th>
<td>событие dragEnter происходит, когда пользователь достигает границы объекта-приемника</td>
</tr><tr>
<td>32</td>
<th>ondragleave</th>
<td>событие dragLeave происходит, если пользователь не сбросил объект на доступный объект-приемник, а увел курсор мыши в другое место</td>
</tr><tr>
<td>33</td>
<th>ondragover</th>
<td>событие dragOver происходит сразу же после события onDragEnter и присутствует постоянно, пока объект находится над доступным объектом-приёмником</td>
</tr><tr>
<td>34</td>
<th>ondragstart</th>
<td>событие dragStart происходит, когда пользователь начинает перетаскивание мышью</td>
</tr><tr>
<td>35</td>
<th>ondrop</th>
<td>событие drop происходит перед событием onDragEnd при отпускании кнопки мыши во время операции перетаскивания</td>
</tr><tr>
<td>36</td>
<th>onerror</th>
<td>событие error происходит при ошибке загрузки документа или графического изображения</td>
</tr><tr>
<td>37</td>
<th>onerrorupdate</th>
<td>событие errorUpdate происходит, если при переносе измененных данных в базу данных происходит ошибка</td>
</tr><tr>
<td>38</td>
<th>onfilterchange</th>
<td>событие filterChange происходит, когда визуальный фильтр изменяет свое состояние или когда визуальное преобразование заканчивает свою работу</td>
</tr><tr>
<td>39</td>
<th>onfilterevent</th>
<td>событие filterEvent происходит когда завершён данный переход фильтра</td>
</tr><tr>
<td>40</td>
<th>onfinish</th>
<td>событие finish происходит, когда очередной цикл движения текста в теге &lt;marquee&gt; завершается</td>
</tr><tr>
<td>41</td>
<th>onfocus</th>
<td>событие focus происходит, когда элемент получает фокус ввода</td>
</tr><tr>
<td>42</td>
<th>onfocusin</th>
<td>событие focusIn происходит перед тем, как элемент(или его дочерний элемент) получает фокус</td>
</tr><tr>
<td>43</td>
<th>onfocusout</th>
<td>событие focusOut происходит перед тем, как элемент (или его дочерний элемент) теряет фокус</td>
</tr><tr>
<td>44</td>
<th>onhashchange</th>
<td>событие hashChange происходит когда хэш подраздела (начинается со знака #) URL текущего документа изменился</td>
</tr><tr>
<td>45</td>
<th>onhelp</th>
<td>событие help происходит, когда нажата клавиша F1</td>
</tr><tr>
<td>46</td>
<th>oninput</th>
<td>нет в ие6-8, а ие9-ие10???, событие Input происходит в момент, когда элемент управления формы меняет своё значение</td>
</tr><tr>
<td>47</td>
<th>onkeydown</th>
<td>событие keyDown происходит при нажатии клавиши на клавиатуре</td>
</tr><tr>
<td>48</td>
<th>onkeyup</th>
<td>событие keyUp происходит при отпускании клавиши на клавиатуре</td>
</tr><tr>
<td>49</td>
<th>onkeypress</th>
<td>событие keyPress происходит при нажатии и отпускании клавиши на клавиатуре</td>
</tr><tr>
<td>50</td>
<th>onlayoutcomplete</th>
<td>событие layoutComplete происходит, когда Web-страница уже готова для печати на принтере или предварительного просмотра</td>
</tr><tr>
<td>51</td>
<th>onload</th>
<td>событие load происходит, когда браузер заканчивает загружать элемент в окно (это событие можно использовать как атрибут в тегах &lt;body&gt;, &lt;img&gt;)</td>
</tr><tr>
<td>52</td>
<th>onlosecapture</th>
<td>событие loseCapture происходит когда когда элемент страницы перестает перехватывать все события мыши</td>
</tr><tr>
<td>53</td>
<th>onmousedown</th>
<td>событие mouseDown происходит при нажатии кнопки мыши</td>
</tr><tr>
<td>54</td>
<th>onmouseenter</th>
<td>событие mouseEnter происходит когда пользователь помещает курсор мыши на элемент страницы</td>
</tr><tr>
<td>55</td>
<th>onmouseleave</th>
<td>событие mouseLeave происходит когда пользователь убирает курсор мыши с элемента страницы</td>
</tr><tr>
<td>56</td>
<th>onmousemove</th>
<td>событие mouseMove происходит когда пользователь двигает мышь</td>
</tr><tr>
<td>57</td>
<th>onmouseover</th>
<td>событие mouseOver происходит когда мышиный курсор перемещается на элемент</td>
</tr><tr>
<td>58</td>
<th>onmouseout</th>
<td>событие mouseOut происходит когда мышиный курсор уходит за пределы элемента</td>
</tr><tr>
<td>59</td>
<th>onmouseup</th>
<td>событие mouseUp происходит при отпускании кнопки мыши</td>
</tr><tr>
<td>60</td>
<th>onmousewheel</th>
<td>событие mouseWheel происходит когда над элементом прокручивается колёсико мыши</td>
</tr><tr>
<td>61</td>
<th>onmove</th>
<td>событие move происходит когда пользователь перемещает окно Web-обозревателя или изменяет размера фрейма<br>
Параметры:<br>
type - тип события<br>
target - ссылка на элемент страницы, где оно наступило<br>
X и Y - координаты левого верхнего угла окна или фрейма</td>
</tr><tr>
<td>62</td>
<th>onmoveend</th>
<td>событие moveEnd происходит непосредственно после прекращения движения объекта по экрану</td>
</tr><tr>
<td>63</td>
<th>onmovestart</th>
<td>событие moveStart происходит непосредственно перед началом движения объекта по экрану</td>
</tr><tr>
<td>64</td>
<th>onoffline</th>
<td>событие offLine происходит когда браузер начинает работать в автономном режиме</td>
</tr><tr>
<td>65</td>
<th>ononline</th>
<td>событие onLine происходит когда браузер начинает работать в Интернете</td>
</tr><tr>
<td>66</td>
<th>onpaste</th>
<td>нет в опере, событие paste происходит при вставке данных из буфера обмена Windows в текущий элемент страницы</td>
</tr><tr>
<td>67</td>
<th>onpropertychange</th>
<td>вроде только ИЕ, событие propertyChange происходит при изменении одного из свойств текущего элемента страницы</td>
</tr><tr>
<td>68</td>
<th>onreadystatechange</th>
<td>событие readyStateChange происходит при изменении состояния элемента страницы</td>
</tr><tr>
<td>69</td>
<th>onreset</th>
<td>событие reset происходит при очистке формы (используется только как атрибут тега &lt;form&gt;)</td>
</tr><tr>
<td>70</td>
<th>onresize</th>
<td>событие resize происходит при изменении размеров окна, фрейма или другого элемента страницы</td>
</tr><tr>
<td>71</td>
<th>onresizeend</th>
<td>событие resizeEnd происходит по окончании изменения пользователем размеров элемента страницы, имеющего собственный пользовательский интерфейс</td>
</tr><tr>
<td>72</td>
<th>onresizestart</th>
<td>событие resizeStart происходит, когда пользователь начинает изменять размеры элемента страницы, имеющего собственный пользовательский интерфейс</td>
</tr><tr>
<td>73</td>
<th>onrowenter</th>
<td>событие rowEnter происходит при переходе на другую запись базы данных</td>
</tr><tr>
<td>74</td>
<th>onrowexit</th>
<td>событие rowExit происходит перед переходом с текущей записи базы данных на другую</td>
</tr><tr>
<td>75</td>
<th>onrowsdelete</th>
<td>событие rowsDelete происходит непосредственно перед удалением текущей записи из базы данных</td>
</tr><tr>
<td>76</td>
<th>onrowsinserted</th>
<td>событие rowsInserted происходит сразу после новой записи в базу данных</td>
</tr><tr>
<td>77</td>
<th>onscroll</th>
<td>событие scroll происходит в момент прокрутки окна</td>
</tr><tr>
<td>78</td>
<th>onsearch</th>
<td>событие search происходит при нажатии клавиши ENTER или щелчке по кнопке Erase search text в поле &lt;input type=&quot;search&quot;&gt;</td>
</tr><tr>
<td>79</td>
<th>onselect</th>
<td>событие select происходит при выделении некоторого текста в текстовом поле</td>
</tr><tr>
<td>80</td>
<th>onselection</th>
<td>событие selection происходит, когда пользователь выделяет фрагмент содержимого страницы или поля ввода</td>
</tr><tr>
<td>81</td>
<th>onselectionchange</th>
<td>событие selectionChange происходит, когда меняется тип выделения</td>
</tr><tr>
<td>82</td>
<th>onselectstart</th>
<td>событие selectStart происходит при выделении объекта или текста</td>
</tr><tr>
<td>83</td>
<th>onstart</th>
<td>событие start происходит, когда текст в элементе &lt;marquee&gt; начинает двигаться</td>
</tr><tr>
<td>84</td>
<th>onstop</th>
<td>событие stop происходит, когда пользователь прерывает загрузку текущей Web-страницы нажав кнопку Стоп или отжав её</td>
</tr><tr>
<td>85</td>
<th>onsubmit</th>
<td>    событие submit происходит при отпраке формы (используется только как атрибут тега &lt;form&gt;)</td>
</tr><tr>
<td>86</td>
<th>onunload</th>
<td>событие unLoad происходит, когда пользователь закрывает текущий документ в окне браузера</td>
</tr><tr>
<td>87</td>
<th>onadcreated</th>
<td>?</td>
</tr><tr>
<td>88</td>
<th>oncancelcommand</th>
<td>?</td>
</tr><tr>
<td>89</td>
<th>oncheckedchanged</th>
<td>?</td>
</tr><tr>
<td>90</td>
<th>oncommand</th>
<td>?</td>
</tr><tr>
<td>91</td>
<th>ondayrender</th>
<td>?</td>
</tr><tr>
<td>92</td>
<th>ondeletecommand</th>
<td>?</td>
</tr><tr>
<td>93</td>
<th>oneditcommand</th>
<td>?</td>
</tr><tr>
<td>94</td>
<th>onitemcommand</th>
<td>?</td>
</tr><tr>
<td>95</td>
<th>onitemcreated</th>
<td>?</td>
</tr><tr>
<td>96</td>
<th>onpageindexchanged</th>
<td>?</td>
</tr><tr>
<td>97</td>
<th>onselectedindexchanged</th>
<td>?</td>
</tr><tr>
<td>98</td>
<th>onselectionchanged</th>
<td>?</td>
</tr><tr>
<td>99</td>
<th>onserverchange</th>
<td>?</td>
</tr><tr>
<td>100</td>
<th>onserverclick</th>
<td>?</td>
</tr><tr>
<td>101</td>
<th>onservervalidate</th>
<td>?</td>
</tr><tr>
<td>102</td>
<th>onsortcommand</th>
<td>?</td>
</tr><tr>
<td>103</td>
<th>ontextchanged</th>
<td>?</td>
</tr><tr>
<td>104</td>
<th>onupdatecommand</th>
<td>?</td>
</tr><tr>
<td>105</td>
<th>onvisiblemonthchanged</th>
<td>?</td>
</tr></table>
 
</body>
</html>
4
Смолевич
94 / 53 / 5
Регистрация: 19.07.2014
Сообщений: 414
07.08.2014, 01:03 #14
Как скомпилировать JScript в exe, защитив его от просмотра и редактирования?

Вот наваял прожку
http://www.cyberforum.ru/beta-testing/thread1239365.html#post6496453
Точнее говоря, даже не скомпилировать, а просто упаковать...
И защита от просмотра унылая получается, через ResHacker все видно...
Но быстро, легко (EXE весит от 7 КБ), интерфейс упаковщика по-русски и, конечно же, бесплатно.

Добавлено через 3 минуты
И вдогонку к предыдущему посту ссылка на хороший обфускатор (шифровщик) кода...

Может и "баян" и 90% его уже знают и пользоваться. Но 10%-то все равно не знаю...
http://javascriptobfuscator.com/
Совместимость со своим упаковщиком не тестировал.

А вот и расшифровщик (тоже наверно "баян", но тоже не все знают)
http://jsbeautifier.org/
Впрочем, после обфускатора помогает плохо.
Скорее просто для форматирования кода, если он налеплен в 1 строку, ну или нет отступов...
1
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
04.08.2015, 23:54 #15
КАК ЗАПРЕТИТЬ ПРОСМОТР КОДА(ещё одно дополнение)
Javascript
1
2
3
4
5
6
7
8
9
addEventListener("keydown",function(e){                                                               
    if(e.keyCode == 123/*код клавиши f12 почти для всех*/ ||                                          
            ((e.keyCode==73/*код клавиши I для хрома*/ || e.keyCode==67/* код клавиши С для оперы*/)&&
                    e.ctrlKey && e.shiftKey)) {                                                       
        e.preventDefault();// отменяем все действия после                                             
        e.stopImmediatePropagation();// постараемся отменить))                                        
        return false                                                                                  
    }                                                                                                 
},true);// почти первое, что будет выполнено
но конечно же, это защитит не от всех, от ie, например не защищает

всё сводится к поговорке: "Кто ищет, тот всегда найдёт"

Добавлено через 6 часов 6 минут
кстати в сумме с запретом на контекстное меню, можно будет хорошенько потрепать нервы любителям посмотреть код)
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
17.08.2015, 23:18 #16
УДАЛЕНИЕ ДУБЛЕЙ ИЗ МАССИВА
аргумент - массив с дублями, причём любыми(объекты, строки, числа и тд и тп)
выход - массив без дублей
Javascript
1
2
3
4
5
6
7
8
function(arr){
    var s=0;
    arr.forEach(function(e,i,arr){
        while ((s=arr.indexOf(e,i))!=-1)
            arr.splice(s,1);
    });
    return arr;
}
0
Unick
не Администратор ^_^
985 / 219 / 23
Регистрация: 03.05.2009
Сообщений: 1,479
Записей в блоге: 1
18.08.2015, 10:36 #17
Цитата Сообщение от BANO Посмотреть сообщение
кстати в сумме с запретом на контекстное меню, можно будет хорошенько потрепать нервы любителям посмотреть код)
любителей это даже не напряжет.
и еще, на маке cmd+alt+i (меню -> дополнительные настройки -> инструменты разработчика)
0
BANO
Ренегат
Эксперт HTML/CSS
1716 / 1059 / 385
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.08.2015, 11:02 #18
Unick, ну я не помню, чтобы у меня было много знакомых любителей посмотреть код вообще, а из них пользуется маком только 1, так что это в любом случае спасает только от случайно нажавжих кнопку инструментов разраба
0
18.08.2015, 11:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2015, 11:02
Привет! Вот еще темы с решениями:

Java и javascript. Передать переменную из Java в Javascript
Здравствуйте,уважаемые форумчане! Я начинающий программист. Разбираюсь в...

Чем определяется одинаковость урлов /page?FAQ и /page.php?FAQ
Подскажите, пожалуйста, какая опция php или настройка сервера позволяет не...

=FAQ=
Частые вопросы на Изеэлектрониксе, и ответы к ним. В: Что почитать...

FAQ
Не могу скачать документацию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru