Jump to content

AKS

User
  • Posts

    297
  • Joined

  • Last visited

Everything posted by AKS

  1. Раз уж речь зашла о "правильности", то во-первых, переделайте и свой вариант на правильный (подсказку выделил), а во-вторых, в сообщении LokiDi L0ck указал также правильный вариант (с точки зрения Microsoft IE), так что переделывать особенно нечего.
  2. Да что ж тут страшного? Не бойтесь! Мы всего лишь предложили обратить внимание на некоторые курьезы (хуже ведь никому не стало ). Главное ? это сделать правильные выводы. Ну и заметить, что резюме, которое сделал Yarik Voronov, может немного помешать принять верное решение (то, что было подсказано в начале).
  3. Тут есть слабое звено ? это 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); // => ??? }()); }());
  4. Не "может", а точно будете смеяться, если прочтете тему с начала (или, в случае крайней нехватки времени, а может чего еще, обратите внимание на мое краткое изложение сути).
  5. Это лишнее (сами ведь писали, что обработчик onload в body "ставится вместо" этого).
  6. Фокус теряется именно в десятках тысяч строк?
  7. // load - это ваш слушатель события document.addEventListener('DOMContentLoaded', load, false);
  8. Ну поначалу-то все-равно хочется понять можно ли: при условии: (т.е. без агрументов в foo). И очень интересно узнать то, что достучаться все-таки можно...
  9. Обожаю подобные комменты! А Вам известно, что под условие "Для IE" также должны попасть Opera, Safari, Konqueror, iCab etc?
  10. AKS

    getElementById

    Почитать о чем? О том, что бывает, когда "я подгружаю из функции значение полей любого документа сайта как document.getElementById('someId').value"?
  11. Спор на тему "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)
  12. Вам надо установить обработчик onchange для .
  13. Шурик, вот функция, которая работает почти так, как Вам хотелось бы. Может быть она Вам пригодится, как подсказка для поиска собственного решения: 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(); };
  14. А в каком браузере вылетает ошибка (просто интересно)?
  15. Вот как раз морального права не имеет. Надо научиться читать Content-Script-Type вместо того, чтобы сообщать об ошибках на веб-страницах, которые кто-то старательно создавал, используя, в силу каких-либо причин, язык, непонятный для FF.
  16. О том и речь ? возможно стандартизуют нечто подобное и в атрибутах обработчикав событий. Ведь что сейчас мы видим ? дискриминация IE. Как я уже писал, несмотря на указания в стандарте, FF "ломает" документы, созданные под IE. Почему FF не реагирует на объявленный скриптовый язык? И правильно, что об этом задумываются разработчики HTML 5, а также разработчики XHTML 2. ? на одном js свет клином не сошелся. В доках ведь есть упоминания о о multiscript language pages. Т.е. браузеры должны уметь различать языки, так ведь? А в Gecko, например, вместо нормальной реализации это просто сделано, как "костыль". Отсюда следует: 1. Задавая метку нужно отдавать себе отчет ? для чего она задается. 2. Есть поддержка или нет ? это другой вопрос, а вот то, что "лезть не в свое дело" ? это плохо (т.е. пытаться выполнить неизвестный код), браузеру должно быть известно.
  17. Вообще, тут не просто разобрать, что к чему. В 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, а также есть некоторые сомнения по поводу обработчиков событий: Так что, возможно, когда-нибудь префикс, указывающий браузеру на синтаксис, используемый в обработчике события, все же будет стандартизирован.
  18. По голове-то не надо - она ведь одна (потом не отремонтируешь). А вот объяснить таким, как VFK, что форум на то и форум, чтоб общаться публично, а не в личке - это не помешало бы. Один умный человек как-то раз справедливо сделал замечание такому, как VFK:
  19. Используйте, чтоб "стереть" отличия. А чего бояться-то? Того, что опять кто-нибудь посочувствует? Вообще, могли бы обратиться с просьбой создать раздел, вроде "Использование (применение) js-библиотек" (на некоторых форумах есть такие). "Сочувствующим" дам будет нечего делать, и, соответственно, не будет оффтопа, лишь все по делу.
  20. Да какие наезды (наездов что-ль не видели)? Топикстартер засвидетельствовал факт: "...бывают случаи, когда сроки важнее качества и компактности кода, приходится писать что-нибудь, совершенно не имея представления...". А я лишь назвал этот факт печальным, добавив для полноты картины описание происходящего в разработке от Дэвида. Так что не приписывайте мне подвиги, которых я не совершал...
  21. А Вы посмотрите мое первое сообщение в этой теме. Все остальные сообщения - это попытка оправдаться. Давили на меня за "отступничесво" - то докажи, то покажи. А авторитеты для того и существуют, чтобы принимать во внимание их мнение, а не аргументы, вроде "a million monkeys can't be wrong" (R.Cornford).
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy