Комментарии 85
Решение для target=«blank» можно перефразировать по другому. «Запрещено ездить непристегнутым? Так пристегнитесь, но когда милиционер не видит — можно ремень снять» :)
+16
Безусловно, лучше было бы $('a[@rel$='external']').click(function(){ window.open(…
0
Безусловно лучше бы было, если бы W3C не плодил идиотских запретов и правил. Их и так в стандарте предостаточно. А уж если бы и плодил в одном стандарте, то в последующих их не отменял.
+3
Это соображение также справедливо.
С другой стороны, я полагаю, что запрет W3C был вызван стремлением к тому идеалу, согласно которому пользователь должен сам решить заранее, будет ли гиперссылка открываться именно в новом окне, или же нет.
Но сейчас есть масса простых бесхитростных технических средств, которые позволяют пользователю вырубить target="_blank" напрочь, ежели он того возжелает; так что запрет выглядит как бы ужé и излишним.
С другой стороны, я полагаю, что запрет W3C был вызван стремлением к тому идеалу, согласно которому пользователь должен сам решить заранее, будет ли гиперссылка открываться именно в новом окне, или же нет.
Но сейчас есть масса простых бесхитростных технических средств, которые позволяют пользователю вырубить target="_blank" напрочь, ежели он того возжелает; так что запрет выглядит как бы ужé и излишним.
0
Вообще-то справедливости ради нужно сказать, что target запрещен только в strict. Так же как и iframe.
Но все равно непонятно зачем такая непоследовательность. Постоянно используемый, опять же из-за кривизны стандартов iframe исключен из strict, зато куча тегов, которые практически никем не используется (по назначению) типа dfn, cite, acronym, abbr потащили в xhtml2
Но все равно непонятно зачем такая непоследовательность. Постоянно используемый, опять же из-за кривизны стандартов iframe исключен из strict, зато куча тегов, которые практически никем не используется (по назначению) типа dfn, cite, acronym, abbr потащили в xhtml2
0
нет там никакой непоследовательности. просто там используется другая концепция… d-o-b.ru/?article:kill.html
xhtml — язык только лишь гипертекстовой разметки. а iframe — это виджет для создания веб-приложений
xhtml — язык только лишь гипертекстовой разметки. а iframe — это виджет для создания веб-приложений
0
Любопытно, почему object — хорошо, а iframe — плохо? Логичнее было бы наоборот.
Или микрософтовские корни iframe застят глаза W3C?
Или микрософтовские корни iframe застят глаза W3C?
0
объекты могут вкладываться друг в друга для обеспечения максимальной совместимости.
+1
Ну в iframe как раз совместимость 100% и обеспечивается стандартами w3c, а вот продекларированная совместимость вложенных объектов в obj окажется пшиком, потому что реализация будет 100% зависеть от конкретных реализайций.
0
Я использую <abbr> повседневно, а не то как же ещё аббревиатуры помечать в Паутине?
0
>Я использую повседневно,
У вас на сайте (www.mithgol.ru) на первой странице нет ни одного abbr, аббревиатур типа FAQ, Фидонет, MP3, DOS и т.п.
>a не то как же ещё аббревиатуры помечать в Паутине?
А зачем? Более важные по смыслу email, phone или Фамилия Имя Отчество не имеют своих собственных тегов. И как-то обходятся. Или используют микроформаты.
У вас на сайте (www.mithgol.ru) на первой странице нет ни одного abbr, аббревиатур типа FAQ, Фидонет, MP3, DOS и т.п.
>a не то как же ещё аббревиатуры помечать в Паутине?
А зачем? Более важные по смыслу email, phone или Фамилия Имя Отчество не имеют своих собственных тегов. И как-то обходятся. Или используют микроформаты.
+3
1) А я не на персональном полузаброшенном сайте, я на других.
2) Firefox понимает <abbr>, подчёркивает пунктиром, подсказку всплывающую устраивает.
2) Firefox понимает <abbr>, подчёркивает пунктиром, подсказку всплывающую устраивает.
0
1) Я верю, что начиная с 2006 года на _других_ сайтах, даже в [abbr]ЖЖ[/abbr] вы всегда заключаете в тег abbr такие слова как «колхоз», «интернет» и конструкции типа «и т.д.» «и т.п.»
Но вы человек исключительный.
2) Firefox понимает, подчёркивает пунктиром, подсказку всплывающую устраивает.
теги marquee и blink имели еще более выразительные средства. Но к счастью их прибили.
Подсказка при отсутствии title — какое-то сомнительное достижение.
Но вы человек исключительный.
2) Firefox понимает, подчёркивает пунктиром, подсказку всплывающую устраивает.
теги marquee и blink имели еще более выразительные средства. Но к счастью их прибили.
Подсказка при отсутствии title — какое-то сомнительное достижение.
0
Отплюсовал расово верный комментарий и совсем не додумался посмотреть на ник написавшего… о боже, мицгол!
-1
как по мне так правильно запрещают. хочу сам контролировать — открывается ссылка в новом окне или в текущем.
+2
НЛО прилетело и опубликовало эту надпись здесь
Важная поправка.
Как на habrahabr.ru/blogs/jquery/54306/#comment_1448261 верно было подмечено, кавычки (окаймляющие или внутренние) должны быть сделаны двойными, ведь если одинарные и там и там, то не сработают.
Как на habrahabr.ru/blogs/jquery/54306/#comment_1448261 верно было подмечено, кавычки (окаймляющие или внутренние) должны быть сделаны двойными, ведь если одинарные и там и там, то не сработают.
0
Полезно понимать разницу между атрибутом HTML-элемента и свойством Javascript-объекта. Если атрибут запрещён в HTML-коде как несемантический, то это никак не отражается на легитимности свойства, определяющего поведение Javascript-объекта.
+1
Да, но все же DTD влияет на работу с DOM, возьмите к примеру document.all в Gecko, который доступен только в Quirks Mode, или scrollTop для document.body и document.documentElement в Internet Explorer. Нет уверенности, что не выйдет новая версия браузера с каким нибудь Super Standards Compliance Mode, в котором будут игнорироваться не описанные в DTD атрибуты тегов, для которых браузер должен автоматически синхронизировать соответствующие свойства DOM-элементов.
0
НЛО прилетело и опубликовало эту надпись здесь
Вероятность же, что браузеры реального веба начнуть обращать внимание на DTD (который вот-вот отомрет с приходом HTML5:), имхо, строго равна нулю.А сейчас браузеры не обращают внимание на DTD?
0
НЛО прилетело и опубликовало эту надпись здесь
Да браузеры не грузят каждый раз указанный файл с доктайпом, но речь то не об этом. Проблема в том, что от DTD зависит работа с DOM в Javascript и CSS. Да сейчас отличия только в режимах без доктайпа (QuirksMode) и c DTD (Standards Compliance Mode), а между версиями Transitional и Strict в XHTML 1.0 врятли в работе Javascript найдутся отличия, но кто может гарантировать что теже евангелисты из Mozill'ы не сделают в очередной новой версии браузера бесполезным для работы в режиме Strict, к примеру, такой код:
илиdocument.createElement("iframe")
Да я согласен, что это маловероятно :-) просто если есть возможность следовать стандартам, лучше так и делать :-) хотя бывают и исключения.element.setAttribute("target", "_blank")
0
НЛО прилетело и опубликовало эту надпись здесь
А разве символ "@" при выборке атрибутов не стал устаревшим? По-моему, сейчас надо писать так:
$('a[rel$='external']').click(function(){
this.target = "_blank";
});
+6
$('element').size(); — можно еще обращаться к свойству length, если не ошибаюсь, эффект будет тот же.
+3
Ссылки target=blank
А не лучше ли тогда уже полностью по стандартам?
$('a[@rel$='external']').click(function(){
this.onclick = function(){ window.open(this.href) }
});
А не лучше ли тогда уже полностью по стандартам?
$('a[@rel$='external']').click(function(){
this.onclick = function(){ window.open(this.href) }
});
+3
>>Определение браузера
Ага, попробуйте потом за кем-нибудь такую мешанину кода разобрать.
>>Вот что я называю очень простым, но очень полезным советом
>>Вы когда-нибудь хотели иметь возможность удалять
Эм… Промт?
Честно говоря, на «хитрость» не тянет.
Ага, попробуйте потом за кем-нибудь такую мешанину кода разобрать.
>>Вот что я называю очень простым, но очень полезным советом
>>Вы когда-нибудь хотели иметь возможность удалять
Эм… Промт?
Честно говоря, на «хитрость» не тянет.
0
продолжение следует? тонкостей больше :)
+2
Что-то никакие это не тонкости. Это банальности.
+10
> Вы используете атрибут target=blank для ссылок? Если да, то вы должны знать, что XHTML 1.0 Strict не позволяет этого делать
зато xhtml 1.1 позволяет.
> $('element').size()
ух уж эта хитрая документация ;-)
> $.preloadImages(«image1.gif», "/path/to/image2.png", «some/image3.jpg»);
а как же отделение оформления от поведения?
> в jQuery 1.3 и выше $.browser считается устаревшим и не рекомендуется к использованию, вместо этого рекомендуется использовать $.support.
да-да, как через support определить размер смещения при поэкранном листании (пробелом, например)?
> el.html(el.html().replace(/word/ig, ""));
el.html(el.html().replace(/strong/ig, ""));
> Существует множество вариантов запрета вызова контекстного меню мышью через Javascript, но jQuery позволяет реализовать это намного проще
чтоб вы сдохли, любезные гранато-раздаватели.
зато xhtml 1.1 позволяет.
> $('element').size()
ух уж эта хитрая документация ;-)
> $.preloadImages(«image1.gif», "/path/to/image2.png", «some/image3.jpg»);
а как же отделение оформления от поведения?
> в jQuery 1.3 и выше $.browser считается устаревшим и не рекомендуется к использованию, вместо этого рекомендуется использовать $.support.
да-да, как через support определить размер смещения при поэкранном листании (пробелом, например)?
> el.html(el.html().replace(/word/ig, ""));
el.html(el.html().replace(/strong/ig, ""));
> Существует множество вариантов запрета вызова контекстного меню мышью через Javascript, но jQuery позволяет реализовать это намного проще
чтоб вы сдохли, любезные гранато-раздаватели.
+8
НЛО прилетело и опубликовало эту надпись здесь
www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_targetmodule
проверено, валидатор не против.
проверено, валидатор не против.
0
$('a[rel$='external']').click(function(){
работать ведь не будет :-)
Кавычки для external тогда уж надо двойные
работать ведь не будет :-)
Кавычки для external тогда уж надо двойные
0
— Трюк с выравниванием колонок некошерный. Верстка будет прыгать после загрузки.
— Определение броузерв в старых версиях Jquery было реализовано по userAgent. Было очень странно видеть такой глюк, в библиотеке, которая решила 99% броузерной совместимости js.
— За запрет вызова контекстного меню мышью нужно отрывать руки.
— Определение броузерв в старых версиях Jquery было реализовано по userAgent. Было очень странно видеть такой глюк, в библиотеке, которая решила 99% броузерной совместимости js.
— За запрет вызова контекстного меню мышью нужно отрывать руки.
+8
Предзагрузка изображений
arguments_length = arguments.length;
for(var i = 0; i<arguments_length; i++)
по-моему так лучше
arguments_length = arguments.length;
for(var i = 0; i<arguments_length; i++)
по-моему так лучше
-2
В Opera контекстное меню всё равно будет появляться.
+8
Что-то как-то не очень советы. Скорее повторение доков jQuery =/
+3
Советы странные. Особенно мне понравился совет по замене комментариев в CSS на Javascript вызовы. Интересно, хоть один верстальщик придёт в восторг от такого? А пользователи с отключённым Javascript'om будут долго хвалить авторов сайта?
Изменение размера шрифта не требует jQuery — это сейчас хорошо делают браузеры. Похоже, советам года три-четыре.
Изменение размера шрифта не требует jQuery — это сейчас хорошо делают браузеры. Похоже, советам года три-четыре.
+1
jQuery же может сразу для всего списка атрибуты изменить, и селектор атрибута неправильно подобран, нужно использовать ~= для списка значений, разделенных пробелом:$('a[rel$="external"]').click(function(){ this.target = "_blank"; });
$('a[rel~="external"]').attr("target", "_blank");
+1
вы наверное имели в виду селектор '*='?
docs.jquery.com/Selectors/attributeContains#attributevalue
docs.jquery.com/Selectors/attributeContains#attributevalue
0
Нет, я правильно написал, для списка значений, разделенных пробелом нужно использовать ~=, в документации по jQuery его почему-то нет, но он поддерживается (строка №2028 в jQuery 1.3.2):
В старых версиях тоже есть поддержка такого селектора атрибутов, а так же он является стандартным и описан в спецификации.type === "~=" ? (" " + value + " ").indexOf(check) >= 0 :
+2
Это, по-моему, как вместо простых действий на чистом JS, подключить фреймворк и сделать так же…
0
Почему этот совет
jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
jQuery("").attr(«src», arguments[i]);
}
};
не использует этот совет
$('element').size();
jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
jQuery("").attr(«src», arguments[i]);
}
};
не использует этот совет
$('element').size();
0
ожидал увидеть что то более неизвестное
0
Ёпрст. Какого года статья? В 98% этих советов — при чём здесь jQuery? Чистого JS-кода для этих же действий будет столько же (а где-то меньше).
P.S.>:
> Кому не нравится jQuery?
шикарное начало для статьи :D (я знаю, что это перевод =), но тем не менее)
P.S.>:
> Кому не нравится jQuery?
шикарное начало для статьи :D (я знаю, что это перевод =), но тем не менее)
+1
Я не использую ссылки с атрибутом target=blank, я использую атрибут target="_blank"
0
Спасибо! Искал код для подгрузки изображений, и вот нашёл. :)
0
на счет пункта «Колонки одинаковой высоты»
имхо лучше все таки вешать подобную функцию не на $(document).ready а на $(window).load то есть после полной загрузки страницы. Был у меня случай когда высота блоков считалась некорректно как раз из за того, что в них были картинки. Вешанье на $(window).load как раз помогло. Мот кому пригодиться =)
имхо лучше все таки вешать подобную функцию не на $(document).ready а на $(window).load то есть после полной загрузки страницы. Был у меня случай когда высота блоков считалась некорректно как раз из за того, что в них были картинки. Вешанье на $(window).load как раз помогло. Мот кому пригодиться =)
0
Плохо что вот этот код
не работает в Opera 9
$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); });
не работает в Opera 9
0
> Предзагрузка изображений
по-моему стоило упомянуть о возможности подцепить callback-функции:
var _src = «path/to/image.jpg»;
$("").load(function() {
alert(«image loaded»);
}).error(function() {
alert(«error loading image»);
}).attr(«src», _src);
> Колонки одинаковой высоты
Во-первых, это можно и нужно решать средствами css, а не javascript.
Во-вторых переменной tallest нечего делать в global scope. Автору примера стоит подучить значение ключевого слова var в javascript.
Вообще ни одной «хитрости» в статье не увидел.
по-моему стоило упомянуть о возможности подцепить callback-функции:
var _src = «path/to/image.jpg»;
$("").load(function() {
alert(«image loaded»);
}).error(function() {
alert(«error loading image»);
}).attr(«src», _src);
> Колонки одинаковой высоты
Во-первых, это можно и нужно решать средствами css, а не javascript.
Во-вторых переменной tallest нечего делать в global scope. Автору примера стоит подучить значение ключевого слова var в javascript.
Вообще ни одной «хитрости» в статье не увидел.
0
Статья получилась полезной, не столько из-за советов, сколько из-за комментариев.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
8 отличных хитростей jQuery