AKS
User-
Posts
297 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by AKS
-
Раз уж речь зашла о "правильности", то во-первых, переделайте и свой вариант на правильный (подсказку выделил), а во-вторых, в сообщении LokiDi L0ck указал также правильный вариант (с точки зрения Microsoft IE), так что переделывать особенно нечего.
-
Да что ж тут страшного? Не бойтесь! Мы всего лишь предложили обратить внимание на некоторые курьезы (хуже ведь никому не стало ). Главное ? это сделать правильные выводы. Ну и заметить, что резюме, которое сделал Yarik Voronov, может немного помешать принять верное решение (то, что было подсказано в начале).
-
Тут есть слабое звено ? это caller. Не всякая Mozilla?а дружит с caller?ом (тяжело ей дается взаимопонимание с ним). Захотелось, к примеру, мне написать что-нибудь, вроде такого: var caller = arguments.callee.caller; ну чтобы потом, используя в функции несколько раз, сократить самому себе писанину. И как Вы думаете, что из этого выйдет? Нынешний Spider(Sea)Monkey вроде обойдется без сюрпризов, усыпив таким образом бдительность js-программиста (у всех ведь новье - FF 3 во всю тестируется ). А что может получить тот, у кого Netscape Browser 8.1 (между прочим не такой уж и старый - 2006 года рождения), или в какая-нибудь забавная FF 1.0, или Mozilla 1.6? Вообще, угадайте, что выдадут alert?ы: (function () { (function f() { alert(f.caller); // => ??? var caller = f.caller; alert(caller); // => ??? }()); }());
-
Не "может", а точно будете смеяться, если прочтете тему с начала (или, в случае крайней нехватки времени, а может чего еще, обратите внимание на мое краткое изложение сути).
-
Как заставить скрипт выполняться после загрузки документа?
AKS replied to chebog's question in JavaScript
Это лишнее (сами ведь писали, что обработчик onload в body "ставится вместо" этого). -
Фокус теряется именно в десятках тысяч строк?
-
Как заставить скрипт выполняться после загрузки документа?
AKS replied to chebog's question in JavaScript
// load - это ваш слушатель события document.addEventListener('DOMContentLoaded', load, false); -
Как заставить скрипт выполняться после загрузки документа?
AKS replied to chebog's question in JavaScript
DOM:window.onload Gecko-Specific DOM Events -
Ну поначалу-то все-равно хочется понять можно ли: при условии: (т.е. без агрументов в foo). И очень интересно узнать то, что достучаться все-таки можно...
-
Обожаю подобные комменты! А Вам известно, что под условие "Для IE" также должны попасть Opera, Safari, Konqueror, iCab etc?
-
Почитать о чем? О том, что бывает, когда "я подгружаю из функции значение полей любого документа сайта как document.getElementById('someId').value"?
-
Спор на тему "undefined ? это (не)ключевое слово" мало чего общего имеет с разделами 4.3.9/4.3.10. В данном случае надо обращаться к разделу: Т.е. пример yopopt if(foo === undefined) имеет дело именно с глобальным св-вом undefined (поэтому и возникли ассоциации с ключевыми словами). Даже в случае с native ECMAScript objects, например в SpiderMonkey, можно получить неожданный результат: typeof new RegExp == 'function' // => true Вроде функция, а вроде кое-чего для того, чтобы быть функцией, не хватает (хотя вызвать-то как-раз можно). А если дело дойдет до host objects, то тогда вообще никакой typeof не поможет: typeof document.images == 'function' // => true (some ver. of Konqueror, Safari, Shiira, Opera etc) typeof document.getElementById == 'object' // => true (IE)
-
Вам надо установить обработчик onchange для .
-
Шурик, вот функция, которая работает почти так, как Вам хотелось бы. Может быть она Вам пригодится, как подсказка для поиска собственного решения: function init() { var re = /function|object/; if (typeof window != 'object' || !re.test(typeof window.setTimeout) || typeof document != 'object' || !re.test(typeof document.getElementById)) { return false; }; var container = document.getElementById('banner'); var text = document.getElementById('my_field'); if (typeof container != 'object' || typeof text != 'object' || typeof text.style != 'object') { return false; }; var width = container.offsetWidth; if (typeof width != 'number' || width <= 0) { return false; }; var lines = ['Наконец-то удалось найти', 'Правильное решение данной проблемы', 'Ротатор гипертекстов на странице', '<b>Cо скроллингом каждой строчки</b>', '<i>Можно вкладывать любые html конструкции!</i>', 'Работает в любых броузерах', 'Это мой первый javascript', 'Не все еще в нем хорошо...', '<b>***Но он работает!!!***</b>']; var id = 0; var length = lines.length; var delay = 1000; var pos = width; var style = text.style; function cycle() { if (delay == 1000) { text.innerHTML = lines[id]; id = (id + 1) % length; delay = 10; }; style.left = pos + 'px'; if (--pos <= 0) { pos = width; delay = 1000; }; window.setTimeout(cycle, delay); }; cycle(); };
-
Ajax. Исполнение JavaScript в коде, передаваемом с сервера
AKS replied to Микель's question in JavaScript
Он получает не только js-код: -
А в каком браузере вылетает ошибка (просто интересно)?
-
Вот как раз морального права не имеет. Надо научиться читать Content-Script-Type вместо того, чтобы сообщать об ошибках на веб-страницах, которые кто-то старательно создавал, используя, в силу каких-либо причин, язык, непонятный для FF.
-
О том и речь ? возможно стандартизуют нечто подобное и в атрибутах обработчикав событий. Ведь что сейчас мы видим ? дискриминация IE. Как я уже писал, несмотря на указания в стандарте, FF "ломает" документы, созданные под IE. Почему FF не реагирует на объявленный скриптовый язык? И правильно, что об этом задумываются разработчики HTML 5, а также разработчики XHTML 2. ? на одном js свет клином не сошелся. В доках ведь есть упоминания о о multiscript language pages. Т.е. браузеры должны уметь различать языки, так ведь? А в Gecko, например, вместо нормальной реализации это просто сделано, как "костыль". Отсюда следует: 1. Задавая метку нужно отдавать себе отчет ? для чего она задается. 2. Есть поддержка или нет ? это другой вопрос, а вот то, что "лезть не в свое дело" ? это плохо (т.е. пытаться выполнить неизвестный код), браузеру должно быть известно.
-
Вообще, тут не просто разобрать, что к чему. В HTML 4.01 Specification ведь написано (там, где речь идет про intrinsic event): А как ПА должен узнать, что это за scripting language? Вроде бы ответ есть: Более того, чуть ниже цитируемого есть пояснение: Так вот, заодно комментируя высказывание: можно заметить, что если кто-то пожелает написать обработчик события onchange, к примеру, на VBScript, то пожалуйста, также, как и с js: <input onchange='vb script:MsgBox "vbscript"'> Вышеуказанный пример с onchange работает в IE. Opera, если я не ошибаюсь, следуя пожеланиям из спецификации, не пытается интерпретировать незнакомый синтаксис. А вот FF, несмотря на то, что в meta указан незнакомый ей язык, все равно пытается понять данные в обработчике и выдает ошибку. Хотя я заметил, что содержимое тега meta (по крайней мере в оффлайн) не влияет ни на что. В том же IE, если убрать префикс vbscript, то будет вылетать сообщение о синтаксической ошибке. Он (IE), как отметил Zeroglif, включает дефолт несколько иначе. Выходит так, что браузеры не соответствуют спецификации. Подобное как раз делает невозможным использование таких меток в кросс-браузерных html-документах. Однако в черновике спецификации HTML 5 есть задумка реализовать The java script: protocol для URI атрибутов href/src, а также есть некоторые сомнения по поводу обработчиков событий: Так что, возможно, когда-нибудь префикс, указывающий браузеру на синтаксис, используемый в обработчике события, все же будет стандартизирован.
-
По голове-то не надо - она ведь одна (потом не отремонтируешь). А вот объяснить таким, как VFK, что форум на то и форум, чтоб общаться публично, а не в личке - это не помешало бы. Один умный человек как-то раз справедливо сделал замечание такому, как VFK:
-
Используйте, чтоб "стереть" отличия. А чего бояться-то? Того, что опять кто-нибудь посочувствует? Вообще, могли бы обратиться с просьбой создать раздел, вроде "Использование (применение) js-библиотек" (на некоторых форумах есть такие). "Сочувствующим" дам будет нечего делать, и, соответственно, не будет оффтопа, лишь все по делу.
-
Да какие наезды (наездов что-ль не видели)? Топикстартер засвидетельствовал факт: "...бывают случаи, когда сроки важнее качества и компактности кода, приходится писать что-нибудь, совершенно не имея представления...". А я лишь назвал этот факт печальным, добавив для полноты картины описание происходящего в разработке от Дэвида. Так что не приписывайте мне подвиги, которых я не совершал...
-
А Вы посмотрите мое первое сообщение в этой теме. Все остальные сообщения - это попытка оправдаться. Давили на меня за "отступничесво" - то докажи, то покажи. А авторитеты для того и существуют, чтобы принимать во внимание их мнение, а не аргументы, вроде "a million monkeys can't be wrong" (R.Cornford).