AKS
User-
Posts
297 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by AKS
-
Вот в этой теме можете взглянуть на то, как "рождалось"-писалось то, что я упомянул выше (в смысле эмуляция setInterval/setTimeout). А вот здесь я попытался объяснить "произошедшее"...
-
Не надейтесь на это св-во:
-
Дядя Саша Что ж, попробую "по буквам". При клике получаем адрес и создаем новой экземпляр объекта Image: var src = /* извлекаем из кликнутой превьюшки */; var preImg = new Image; preImg.onload = function () { /* здесь проверка - закончена ли анимация с прозрачностью*/ /* если закончена, а оно скорее всего так и будет, то: */ [ссылка на элемент <img>].src = this.src; /* запуск анимации по появлению */ }; preImg.src = src; Вот и все...
-
Дядя Саша Вы изображение загружаете? Если да, то тогда установите для него обработчик события onload...
-
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.
-
Не-е-е! Это я недопонял, а точнее поторопился - написал не то. Да я про userscripts писал в ином контексте - к тому, что если пользователь будет часы переводить или еще чего делать (скрипты свои совать, например), то ни-и-икак не сделать что-нибудь безупречное.
-
А что, такая конструкция пошустрее будет. Видать дядечька по имени Сэм не слабо поднаторел в этом деле...
-
А мне нет. Посмотреть бы на то, как должно все выглядеть...
-
"Почти" - а как надо? Комментарии добавил...
-
А Вам, наверно, нужно сделать только обработчик события 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 на первоначальные только после смены всех трех изображений, тогда придется кое-чего еще в функцию добавить...
-
Это тогда, когда браузер уже "седой и бородатый". Так, например, в FF 0.8 (2004 года рождения) это будет 'object', а в Opera 7 (она еще старше) - вообще нету такого "зверя". Ну и в IE, конечно же, такого не найти - у него своего "добра" полно...
-
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>
-
window.setInterval(startTest, 1000); function startTest() { var span2 = document.getElementById('timetable'), date = (new Date).toUTCString(), time = date.match(/sdd:dd:dds/); span2.innerHTML = 'Вы находитесь на сайте уже' + time; }
-
Решил сделать тоже самое, но по-своему. Мне показалось, что вешать обработчики на каждый инпут - это лишнее, да и "бегать" по коллекции элементов формы лишний раз - это тоже как-то не очень. Вобщем так, обработчик клика "болтается" только на форме: <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; } } }
-
Так я ведь и написал: "Наверно надежней будет...", т.к. у меня нет твердой уверенности (не все еще я видел в этой жизни ). На компе ведь много чего можно установить, чтобы "поломать" клиентский сценарий. В 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 (раскомментируйте, чтобы увидеть то, о чем я писал ранее).
-
А я про это совсем забыл... Свой IE на "такое" я так и не смог "уговорить". С этим "флажком" я "поплутал" немножко, да и бросил его (без него мне стало легче ). Попробуйте, может у Вас чего-нибудь с ним получится...
-
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 - упрощенный вариант. Однако если попадется какой-нибудь сложный случай, то будет интересно попытаться разобраться...
-
[Что-угодно].onclick = function () { window.location = 'туда, куда надо'; }
-
Вот именно. Загляните в любую известную Вам библиотеку с ajax и посмотрите, как "они" реализуют подгрузку скриптов... Хотя, если разобраться, если эта самая schema "оказалась" на страничке, то найти ее не составит труда (также, как и в случае "статического указания")...
-
Добавьте здесь в <script> какой-нибудь alert() - будет выполняться?
-
[Область ввода].onclick = function () { this.select(); }
-
Наверно надежней будет использовать объект Date. А то метод window.setInterval, например в "хваленом" Gecko, может выдать "кривые" результаты...
-
Как-нибудь так, наверно: 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); }
-
Справедливости ради нужно отметить, что благодаря конструкции с with функция Easy должна именоваться как-раз наоборот - Hard.
-
setInterval(ias_HTML_SubMenu_Visibility_Control, this.SubMenu_Visibility_Control_time, this) В данном примере первым аргументом в функцию ias_HTML_SubMenu_Visibility_Control будет передан объект, на который укажет this. Вот здесь можно прочесть кое-что еще...