Ru-Board.club
← Вернуться в раздел «Web-программирование»

» вопросы по javascript

Автор: unreal666
Дата сообщения: 27.03.2013 20:08
блин
Еще не сталкивался, чтобы точка с запятой была обязательной, если последующий код на другой строке.
Надо будет тогда на всякий случай всегда их ставить
Автор: Cheery
Дата сообщения: 27.03.2013 20:12
unreal666
я всегда уже ставлю точку с запятой - так и код читается лучше.
Автор: unreal666
Дата сообщения: 27.03.2013 20:28
Кстати. В IE ниже 9 нет объекта Node (да и многих других). Как тогда ко всем узлам сразу цеплять нужные метод/ свойства?
Автор: Cheery
Дата сообщения: 27.03.2013 20:37
unreal666

Цитата:
В IE ниже 9 нет объекта Node (да и многих других).


Цитата:
At the time of this writing, no browser is completely conformant to the DOM standard. Recent releases of Mozilla come closest, and complete DOM Level 2 conformance is a goal of the Mozilla project. Netscape 6.1 does a good job of conforming to the most important Level 2 modules, and Netscape 6.0 does an adequate job but has gaps in its coverage. Internet Explorer 6 is mostly compliant (with at least one annoying exception) with the Level 1 DOM, but does not support many of the Level 2 modules -- most notably the Events module, which is the topic of Chapter 19. Internet Explorer 5 and 5.5 have substantial gaps in their conformance but support key DOM Level 1 methods well enough to run most of the examples in this chapter. The Macintosh version of IE 5 has considerably better support for the DOM than the Windows version of IE 5.


http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-1950641247

функции для работы есть, а самого объекта нет?
http://www.w3schools.com/dom/dom_node.asp
Автор: unreal666
Дата сообщения: 27.03.2013 21:21

Код: alert('Node' in window) // false
alert(typeof Node) // undefined
Автор: Cheery
Дата сообщения: 27.03.2013 21:52
unreal666
http://stackoverflow.com/questions/597268/element-prototype-in-ie7
Автор: unreal666
Дата сообщения: 27.03.2013 22:22
посмотрел. Потестил:

Код: var ttt = '';
___Element = function(){};
for (var prop in ___Element.prototype) {
    ttt = ttt + prop + 'test' + '\r\n';
}
alert(ttt); // пусто
Автор: Cheery
Дата сообщения: 27.03.2013 22:26
unreal666
я не понимаю зачем вам это вообще надо..
по ссылке пример как создать свой интерфейс
там же ссылка на http://msdn.microsoft.com/en-us/library/dd282900%28VS.85%29.aspx

Цитата:
Internet Explorer 8 reveals a DOM prototype hierarchy that is dramatically simpler than the arrangement shown above; primarily because Internet Explorer's object model predates the standardization of the DOM hierarchy as shown. We opted to present the object model to Web developers as-is rather than put up a veneer that gives the appearance of conforming to the DOM hierarchy exactly. This way, we can better articulate and prepare Web developers for future standards-compliance changes to the DOM. The following figure illustrates the unique DOM prototype hierarchy of Internet Explorer 8 using only the interface objects included in the previous illustration. Again, this represents only a fraction of the interface objects supported by Internet Explorer 8:



Цитата:
Note that the common ancestor "Node" is missing. Also note how comments "inherit" from Element (this makes sense when you consider that Internet Explorer still supports the deprecated "<comment>" element).
Автор: unreal666
Дата сообщения: 27.03.2013 22:56

Цитата:
я не понимаю зачем вам это вообще надо..  

у себя кое-что химичу с шаблона страниц, использующихся в проге, использующей у себя движок IE.
По умолчанию этот движок IE в проге работает в режиме IE 7, если в шаблон принудительно не воткнуть тег
"<meta http-equiv="X-UA-Compatible" content="IE=edge" />".

Цитата:
по ссылке пример как создать свой интерфейс

не увидел там ссылку глазами (слишком блеклая). Только через исходник страницы нашел.

Короче. Фиг с этими IE < 9.
Автор: vs6262
Дата сообщения: 07.04.2013 00:03
такой вопрос: можно ли с помощью JavaScript вычислять время нажатия кнопки (input-button) так чтобы к примеру после удержаниия в 3 сек вызывылась какаято функция ?
Автор: Cheery
Дата сообщения: 07.04.2013 00:12
vs6262

Цитата:
такой вопрос: можно ли с помощью JavaScript вычислять время нажатия кнопки (input-button) так чтобы к примеру после удержаниия в 3 сек вызывылась какаято функция ?

можно.. но проще нажать, запустить setTimeout
при отжатии очистить setTimeout
Автор: vs6262
Дата сообщения: 07.04.2013 00:30
Cheery

Цитата:
можно

может гдето пример есть ?

заранее спасибо
Автор: Cheery
Дата сообщения: 07.04.2013 00:49
vs6262

Цитата:
может гдето пример есть ?

пример чего?
http://javascript.ru/setTimeout
Автор: vs6262
Дата сообщения: 07.04.2013 01:22
я имел ввиду без setTimeout
Автор: Cheery
Дата сообщения: 07.04.2013 01:28
vs6262

Цитата:
я имел ввиду без setTimeout

нельзя. как вы время собираетесь считать?

http://jsfiddle.net/cbyhv/


Код: <input type='button' onmousedown='if (!this.timer) this.timer=setTimeout(function(){alert("3 секунды прошло");}, 3000);' onmouseup='clearTimeout(this.timer);this.timer=null;' value='Нажать' />
Автор: vs6262
Дата сообщения: 07.04.2013 17:11
проблему решил

Добавлено:
у меня еще вопрос как узнать при помощи JavaScript высоту и ширину картинки, если она ещё не загружена на вебсайт ?
Автор: Cheery
Дата сообщения: 07.04.2013 23:00
vs6262

Цитата:
высоту и ширину картинки, если она ещё не загружена на вебсайт ?

свойства .height и .width элемента с картинкой

http://jsfiddle.net/rDVdk/


Код: <img src='http://i.ru-board.com/images/remake1.gif' id='i' />
Автор: vs6262
Дата сообщения: 07.04.2013 23:38
Cheery
это всё я уже находил. а как можно узнать сколько у самой картинки пикселей х у?

P.S.: не описанными css

Добавлено:
уже нашел var h = pic.naturalHeight; var w = pic.naturalWidth;
Автор: Cheery
Дата сообщения: 08.04.2013 05:43
vs6262

Цитата:
P.S.: не описанными css

var img = new Image();
img.src = 'путь';
img.height и img.width дадут размеры без css

Цитата:
naturalHeight

может поддерживаться не всеми браузерами
Автор: JimmyKeeper11
Дата сообщения: 21.04.2013 21:45
Подскажите, пожалуйста, как я могу изменять стили определенных классов, через обращение к другим по JS скрипту?

с участием 2х элементов можно было бы ограничится тривиальным псевдоклассом :hover, но суть такая:
Допустим у нас на сайте 3 элемента и, соответственно, 3 класса к ним:
<div class="icon"></div>
<div class="hint1"></div>
<div class="hint2"></div>

в стиле .hint2 {display:none;}

При наведении на div "icon" к "hint1" должно присваиваться display:none, а у "hint2" это значение обнулять display:inherit например.

Другими словами, при наведении на красный кубик в окошке появляется надпись "это красный кубик", а при наведении на зелёный кубик - "это зелёный кубик".
т.к. в js я не силён, а знаю только html|css3 (на хорошем уровне)
Своими силами пытался найти ответ, наткнулся на getElementsByClassName но толком не могу разобраться как манипулировать стилями..

Подскажите, пожалуйста!
Автор: Cheery
Дата сообщения: 21.04.2013 21:49
JimmyKeeper11

Цитата:
но толком не могу разобраться как манипулировать стилями.

Вы можете получить то, что написано в атрибуте class='...' с помощью атрибута className объекта.

это будет строка, в которую вы можете добавлять, удалять имена других классов.
к примеру
<div id='test' class='class1 class2'></div>

document.getElementById('test').className даст строку 'class1 class2'
а дальше уже ваша задача удалить или добавить какой то класс в нее

проще всего это реализуется с помощью jQuery, но я не думаю, что есть смысл подключать его ради такой мелочи
Автор: blaro
Дата сообщения: 24.04.2013 22:55
Привет всем.
Я начал изучать js и первый же пример из книги, который я списал у меня не заработал. Я даже не знаю почему. На всякий случай проверил код еще раз. Все один в один. Выкладываю код. Может вы знаете в чем проблема.

Код:
<!DOCTYPE HTML>
<html>
<head>
<style>
.reveal * {display: none;}
.reveal *.handle {display: block;}
</style>
<script>
window.onload=function()
            {
var elements=document.getElementsByClassName("reveal");
for(var i=0;i<elements.length;i++)
                {
var elt=elements[i];
var title=elt.getElementsByClassName("handle")[0];
addRevealHandle(title,elt);
}
                function addRevealHandle(title,elt)
                {
                    title.onclick=function()
                    {
                        if(elt.className=="reveal")
                            elt.className=="revealed";
                        if(elt.className=="revealed")
                            elt.className="reveal";
                    }
                }
            };
</script>
</head>
<body>
<div class="reveal">
<h1 class="handle">Click here, to see hidden text</h1>
<p>This paragraph is invisible. It will appear after clicking on it.</p>
</div>
</body>
</html>
Автор: Cheery
Дата сообщения: 24.04.2013 23:10
blaro

Код: function addRevealHandle(title, elt)
{
title.onclick = function()
{
if(elt.className == "reveal")
elt.className = "revealed";
else
elt.className = "reveal";
}
}
Автор: blaro
Дата сообщения: 24.04.2013 23:24
Cheery
И что? Ничего же не изменилось. Только короче стало

Добавлено:
А все. Нашел ошибку.
Автор: Cheery
Дата сообщения: 24.04.2013 23:41
blaro

Цитата:
И что? Ничего же не изменилось. Только короче стало

изменилось и еще как..

во первых нет == в операции присвоения

во вторых исправлена ошибка алгоритма, так как второй if сразу же "убивал" действия первого
Автор: blaro
Дата сообщения: 25.04.2013 18:01

Цитата:
во первых нет == в операции присвоения

Я исправил это. У меня после тяжелого трудового дня это два знака равно слились в один.

Добавлено:
Всем спасибо.
Автор: n0kk
Дата сообщения: 26.04.2013 13:01
как получить сегодняшнюю дату на js в формате year, month, date?


Код:
<script language="javascript" type="text/javascript">
var todaydate = new Date();
</script>
Автор: Cheery
Дата сообщения: 26.04.2013 19:12
n0kk
http://www.w3schools.com/jsref/jsref_getmonth.asp
http://www.w3schools.com/jsref/jsref_getdate.asp
http://www.w3schools.com/jsref/jsref_getfullyear.asp
Автор: n0kk
Дата сообщения: 26.04.2013 22:21
Спасибо большое Cheery, помог

Автор: vs6262
Дата сообщения: 26.04.2013 22:50
У меня вопрос как сделать с помощью JavaScript чтобы в editable div не происходил переход на новую строку ?

Страницы: 12345678910111213141516171819202122

Предыдущая тема: jQuery: Перемещение якоря на верх страницы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.