3 js-фреймворка на личном опыте
Философия AMD, RequireJs и модульная разработка веб-приложений на JavaScript
specifies a mechanism for defining modules such that the module and its dependencies can be asynchronously loaded [1]
Всё, что нужно, чтобы начать использовать AMD подход в проекте, - это загрузчик, который знает, что такое AMD-модуль, и умеет подгружать зависимости. Итак,
Keypress event в Knockout.js
//html <div>
<input type="text" data-bind="value: someValue, event : { keypress = function(data, event) { handleKeyPress(data, event) } }" />
<span data-bind="text: someValue"></span>
</div>//view modelvar ViewModel = function() {
var self = this;
self.someValue = ko.observable('');
self.handleKeyPress = function(data, event)
{
if (event.keyCode == 13)
{
//сделать что-нибудь полезное
}
}
}
ko.applyBindings(new ViewModel());
Но не тут-то было! После таких манипуляций текстовое поле перестало реагировать на нажатия всех клавиш, кроме enter. Помогло создание своего специализированного binding-а:
ko.bindingHandlers.enterKey = {
init: function(element, valueAccessor, allBindings, vm) {
ko.utils.registerEventHandler(element, "keyup", function(event) {
if (event.keyCode === 13) {
ko.utils.triggerEvent(element, "change"); //set "this" to the data and also pass it as first arg, in case function has "this" bound valueAccessor().call(vm, vm);
}
return true;
});
}
};
В html это отразится привязыванием на созданный байндинг нужного метода:
<div>
<input type="text" data-bind="value: someValue, enterKey: doSomething } }" />
<span data-bind="text: someValue"></span>
</div>
Спасибо stackoverflow
Компиляция CoffeeScript в JavaScript используя Sublime Text 2
1. Подготовительный этап - установка компилятора CoffeeScript
2. Установка плагина CoffeeScript под Sublime Text 2
И так, приступим.
3 плагина для Sumblime Text, которые облегчат работу с javascript и jQuery
Jquery.Inputmask
Pickdate.js - удобный datetime picker
Прозрачный PNG в IE
Нам потребуется прозрачный gif размером 1х1 пикселей, которую назовем blank.gif. Далее, в хтмл-файле в разделе <head> пишем следующее:
<!--[if lt IE 7]>
<![if gte IE 5.5]>
<script type="text/javascript">
function fixPNG(element)
{
if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
{
var src;
if (element.tagName=='IMG')
{
if (/\.png$/.test(element.src))
{
src = element.src;
element.src = "blank.gif";
}
}
else
{
src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
if (src)
{
src = src[1];
element.runtimeStyle.backgroundImage="none";
}
}
if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='none')";
}
}
</script>
<style type="text/css">
.iePNG, IMG { filter:expression(fixPNG(this)); }
.iePNG A { position: relative; }
</style>
<![endif]>
<![endif]-->Не забудьте исправить путь к gif-изображению, иначе фокус не получится.
Собственно говоря, это все. Скрипт когда-то давно был честно скачан, откуда - не припоминается. Спасибо автору скрипта!
Защита контента с помощью javascript
При выполнении очередного заказа столкнулась с проблемой защиты контента от копирования. Конечно, самая лучшая защита - не выкладывать контент в интернет :). Но так как этот вариант не подходил, то для защиты контента от копирования был написан маленький скриптик:
<script language="JavaScript">
//autor tan4eg
function disableSelection(target)
{
if (typeof target.onselectstart!="undefined")
{
target = document;
target.onselectstart=function(){return false;};
}
else
{
if (typeof(target.style.MozUserSelect)!="undefined")
{
target.style.MozUserSelect="none";
}
else
{
target = document;
target.onmousedown=function(){return false;};
}
}
target.style.cursor = "default";
}
document.oncontextmenu = function() { return false; }
window.onload = function()
{
if (document.getElementById("maintable"))
{
disableSelection(document.getElementById("maintable"));
}
}
</script>
Для использования скрипта достаточно поместить его текст между тэгами <head>
Суть работы скрипта в том, что он запрещает выделение контента у конкретного элемента, id которого мы задаем в обработчике window.onload. Для большей уверенности скрипт также запрещает контекстное меню. Однако это далеко не панацея :(
Ярлыки
Копирайты
Блог о жизни вне кода
Постоянные читатели
Популярно
-
Два месяца прошло с момента публикации моего первого Android приложения на Play market, я перебралась на Самуи , а гугл по-тихоньку начал...
-
Продолжаю серию постов о своём первом андроид-приложении. Сегодня мысли о публикации приложения в разных маркетах.
-
Продолжаю серию заметок о разработке первого android-приложения. На этот раз речь о выборе стратегии монетизации приложения.
-
Разделяй и влавствуй - подход на все времена. Концепция модульного программирования не нова, и хорошо себя зарекомендовала. В мире разрабо...
-
Понравился анекдот о колбасе и яйцах :) Жена посылает мужа-программиста в магазин: - Дорогой, купи, пожалуйста, палку колбасы, и если б...
-
Давайте разберемся с этими загадочными абревиатурами и разницей между ними. IoC (Inversion of Control) - инверсия управления, один из прин...
-
После установки MS SQL Server CE мы получаем целый набор dll-файлов. Для чего нужна какая dll? Что нужно добавлять в проект, а что нет? Сейч...
-
Читаю Э.Голдрат "Цель. Процесс непрерывного совершенствования". Долго откладывала эту книгу в сторону, но пришло и её время. Дей...
-
Задача очень простая: есть сервис на ASP.NET (asmx-сервис) и есть клиент на php, и нужно научить их общаться по http. Всё это просто реал...


