Jump to content

AKS

User
  • Posts

    297
  • Joined

  • Last visited

Everything posted by AKS

  1. Вот в этой теме можете взглянуть на то, как "рождалось"-писалось то, что я упомянул выше (в смысле эмуляция setInterval/setTimeout). А вот здесь я попытался объяснить "произошедшее"...
  2. Не надейтесь на это св-во:
  3. Дядя Саша Что ж, попробую "по буквам". При клике получаем адрес и создаем новой экземпляр объекта Image: var src = /* извлекаем из кликнутой превьюшки */; var preImg = new Image; preImg.onload = function () { /* здесь проверка - закончена ли анимация с прозрачностью*/ /* если закончена, а оно скорее всего так и будет, то: */ [ссылка на элемент <img>].src = this.src; /* запуск анимации по появлению */ }; preImg.src = src; Вот и все...
  4. Дядя Саша Вы изображение загружаете? Если да, то тогда установите для него обработчик события onload...
  5. Tokolist Вот такая конструкция должна работать, как было задумано: window.setInterval(startTest, 1000, new Date); function startTest(aDate) { var span2 = document.getElementById('timetable'), currentDate = new Date, differens = (currentDate - aDate) / 1000, spentTime; currentDate.setUTCHours(0); currentDate.setUTCMinutes(0); currentDate.setUTCSeconds(differens); spentTime = currentDate.toUTCString().match(/sdd:dd:dds/); span2.innerHTML = 'Вы находитесь на сайте уже' + spentTime; } Только для IE придется переделать window.setInterval, чтобы он мог получить new Date третьим параметром (или просто вытащить стартовую дату в global scope). Сейчас, кстати, как раз пытаюсь с божьей помощью (точнее сказать, с помощью Zeroglif'а) переписать window.setInterval для IE.
  6. Не-е-е! Это я недопонял, а точнее поторопился - написал не то. Да я про userscripts писал в ином контексте - к тому, что если пользователь будет часы переводить или еще чего делать (скрипты свои совать, например), то ни-и-икак не сделать что-нибудь безупречное.
  7. А что, такая конструкция пошустрее будет. Видать дядечька по имени Сэм не слабо поднаторел в этом деле...
  8. AKS

    Картинки

    А мне нет. Посмотреть бы на то, как должно все выглядеть...
  9. AKS

    Картинки

    "Почти" - а как надо? Комментарии добавил...
  10. AKS

    Картинки

    А Вам, наверно, нужно сделать только обработчик события onmouseover... Может так: /** * В функцию надо передать три аргумента: * aThis - это изображение "собственной персоной"; * aOne - это адрес файла изображения по умолчанию; * aTwo - это второй адрес файла изображения. */ function changeSRC(aThis, aOne, aTwo) { // Если в данный момент показано первое изображение... if (aThis.src.match(aOne)) { // то заменяется на второе. aThis.src = aTwo; } else { // В противном случае - меняется со второго на первое aThis.src = aOne; } } А в (x)html: <img onmouseover='changeSRC(this, "1.gif", "1_1.gif")' src='1.gif' alt='' /> <img onmouseover='changeSRC(this, "2.gif", "2_1.gif")' src='2.gif' alt='' /> <img onmouseover='changeSRC(this, "3.gif", "3_1.gif")' src='3.gif' alt='' /> Но если нужно менять src на первоначальные только после смены всех трех изображений, тогда придется кое-чего еще в функцию добавить...
  11. Это тогда, когда браузер уже "седой и бородатый". Так, например, в FF 0.8 (2004 года рождения) это будет 'object', а в Opera 7 (она еще старше) - вообще нету такого "зверя". Ну и в IE, конечно же, такого не найти - у него своего "добра" полно...
  12. if (typeof (HTMLTableRowElement) == 'function') { HTMLTableRowElement.prototype.newprop = 'test'; } Для IE в css: tr { behavior:url(tr.htc); } tr.htc: <public:component lightweight='true'> <public:property name='newprop' value='test' /> </public:component>
  13. window.setInterval(startTest, 1000); function startTest() { var span2 = document.getElementById('timetable'), date = (new Date).toUTCString(), time = date.match(/sdd:dd:dds/); span2.innerHTML = 'Вы находитесь на сайте уже' + time; }
  14. Решил сделать тоже самое, но по-своему. Мне показалось, что вешать обработчики на каждый инпут - это лишнее, да и "бегать" по коллекции элементов формы лишний раз - это тоже как-то не очень. Вобщем так, обработчик клика "болтается" только на форме: <form name="lixme" onclick="onClick(this, event)"> <input type="checkbox" /><input type="checkbox" /><input type="checkbox" /> <input type="checkbox" /><input type="checkbox" /><input type="checkbox" /> <input type="checkbox" /> </form> Ну и сценарий: function onClick(aForm, aEvent) { var target = aEvent.target || aEvent.srcElement, bool = target.checked increment = bool ? 1 : -1; if (target.type != 'checkbox') { return false; } if (aForm.clickCount == 2 && bool || aForm.clickCount == 3) { onDisable(aForm, bool); } else if (!aForm.clickCount) { aForm.clickCount = 1; } aForm.clickCount += increment; } function onDisable(aForm, aBool) { var elemens = aForm.elements, iterator = elemens.length, current; while (iterator--) { current = elemens[iterator]; if (current.type == 'checkbox') { current.disabled = !current.checked && aBool; } } }
  15. Так я ведь и написал: "Наверно надежней будет...", т.к. у меня нет твердой уверенности (не все еще я видел в этой жизни ). На компе ведь много чего можно установить, чтобы "поломать" клиентский сценарий. В Opera, например, есть возможность добавить User JavaScripts, который будет "вытворять" с вашей web-страничкой вообще совершенно непредсказуемые вещи... Ага! Сидите Вы в баре, пьете целый час (с радости или с горя, как в американском мультике про волка: "А ребята пью-ю-ют!"). Вот Вы напились в "хлам" за час, и вдруг время перевели назад. Тут все начинают на Вас пальцем показывать, ухахатываясь: "Во напи-и-ился за пару секунд!!!" Что я этим хочу сказать? Перевод времени - явление глобальное, "встрять" можно где-угодно, не только на чьем-то сайте. Конечно есть! Если, к примеру, в IE или в Opera выскочит окошко подтверждения (confirm) или alert какой-нибудь, то Ваш window.setInterval вообще "забудет" про интервальную функцию ("вспомнит" лишь тогда, когда окно предупреждения будет закрыто). Вот пример: var i = 0, k = 10, d = new Date, id = window.setInterval(I, 1000); /* while (k--) { window.setInterval(function () {}, 1000); } */ function I() { i++; if (i >= 10) { window.clearInterval(id); window.alert([(new Date) - d, i]); } } А для кнопки GO-GO напишите onclick='window.confirm("?")'. Кстати, закомментированный блок - это для Gecko (раскомментируйте, чтобы увидеть то, о чем я писал ранее).
  16. А я про это совсем забыл... Свой IE на "такое" я так и не смог "уговорить". С этим "флажком" я "поплутал" немножко, да и бросил его (без него мне стало легче ). Попробуйте, может у Вас чего-нибудь с ним получится...
  17. function applySource(aStr) { var js = aStr.match(/<script.*?>(.|[rn])*?</script>/gi), node = document.createElement('script'); if (!js) { return false; } js = js.join('').replace(/</?script.*?>/gi, ''); document.getElementsByTagName('head') .item(0) .appendChild(node); if (window.ActiveXObject) { node.text = js; } else { node.appendChild(document.createTextNode(js)); } } Т.к. у меня дома на кухне "ajax'а" так и не нашлось, то и проверял "по-домашнему" - вставлял в текстовую область код html со сценариями и кликал, вот так, короче говоря: <textarea rows='30' cols='70' onclick='applySource(this.value)'></textarea> Регвыр не для тщательного анализа, конечно, да и метод match - упрощенный вариант. Однако если попадется какой-нибудь сложный случай, то будет интересно попытаться разобраться...
  18. [Что-угодно].onclick = function () { window.location = 'туда, куда надо'; }
  19. Вот именно. Загляните в любую известную Вам библиотеку с ajax и посмотрите, как "они" реализуют подгрузку скриптов... Хотя, если разобраться, если эта самая schema "оказалась" на страничке, то найти ее не составит труда (также, как и в случае "статического указания")...
  20. Добавьте здесь в <script> какой-нибудь alert() - будет выполняться?
  21. [Область ввода].onclick = function () { this.select(); }
  22. Наверно надежней будет использовать объект Date. А то метод window.setInterval, например в "хваленом" Gecko, может выдать "кривые" результаты...
  23. AKS

    Tree view

    Как-нибудь так, наверно: var tree = ['Home', 'Products', 'JavaScript', ['Functions', 'Objects', 'Classes', ['DYNAPI', 'MyFrame', 'X-Objects' ], 'Variables' ], 'Current', 'Machines' ]; function F(t) { var html = '<ul>', item; for (var i = 0, len = t.length; i < len; i++) { item = t[i]; if (typeof item == 'string') { html += '<li>' + item + '</li>'; } else if (item instanceof Array) { html = html.substring(0, html.lastIndexOf('</li>')); html += F(item); } } html += '</ul>'; return html; } onload = function () { document.body.innerHTML += F(tree); }
  24. AKS

    intval в javascript

    Справедливости ради нужно отметить, что благодаря конструкции с with функция Easy должна именоваться как-раз наоборот - Hard.
  25. AKS

    setInterval

    setInterval(ias_HTML_SubMenu_Visibility_Control, this.SubMenu_Visibility_Control_time, this) В данном примере первым аргументом в функцию ias_HTML_SubMenu_Visibility_Control будет передан объект, на который укажет this. Вот здесь можно прочесть кое-что еще...
×
×
  • 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