Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Мой первый опыт с JavaScript, проблемы (https://javascript.ru/forum/css-html/10944-mojj-pervyjj-opyt-s-javascript-problemy.html)

Uhehesh 30.07.2010 11:07

Мой первый опыт с JavaScript, проблемы
 
Здравствуйте.
Я полный чайник в JavaScript, так как впервые работал с ним вчера. Понял основы я лишь благодаря тому, что JavaScript является C-подобным, а я программирую на C# для Windows.
Вчера я делал следующий проект со следующим кодом:

function echo()
{
var mda = new Array();
mda = x.value.split(" ");

for(var i = 0; i < mda.length; i++)
{

try {
 if(typeof eval(mda[i]) == 'number')
 {
   window.open("http://domain.com.ua/showone/" + mda[i], "uhehe" + mda[i], "");
 }
}
catch(err)
{
continue;
}

}
}


Здесь - x.value это содержимое текстового поля x, куда вводятся числовые значения через пробел. Далее открываются объекты на сайте недвижимости domain.com.ua (настоящий адрес скрыт).
Пример работы данного скрипта можно увидеть здесь: http://mda.net.ru/yrent.html.

Однако, у меня возникла проблема. Этот код работает только на Opera и IE. В Firefox и Webkit-браузерах он отказывается работать, что бы я ни делал.

В чём же проблема? :-?

Octane 30.07.2010 11:37

http://javascript.ru/tutorial/dom/search

Uhehesh 30.07.2010 12:39

Уфф... Не понимаю!
 
Я плохо понял, как мне это должно помочь. :(

Kolyaj 30.07.2010 12:41

x у вас откуда берётся?

Uhehesh 30.07.2010 12:46

Из инпута (текст).

Kolyaj 30.07.2010 12:47

Переменная x откуда берётся, а не её значение?

Uhehesh 30.07.2010 13:00

Что-то я ничего не понимаю. :(
Боюсь ответить неправильно, но отвечу хоть как-нибудь...
Исправьте, если я ошибся, учиться нужно. :)

Скрипт можно увидеть тут. x - инпут текста, находящийся на этой HTML-странице (вы это уже поняли :)).
Но откуда берётся переменная x... :-?

рони 30.07.2010 13:06

Uhehesh,
input в котором имя х надо как то найти, тебе дали ссылку как искать элементы, проще всего добавить id='x'
<input id='x' name='x'  type="text" size="40%" style="font-size:18px;"> <input type="submit" style="height: 30px;" value="Просмотреть" onclick=echo()>

после этого можно искать элемент по document.getElementById('x')
соотвественно
строка
mda = x.value.split(" ");

будет такой
mda = document.getElementById('x').value.split(" ");

можно искать и по имени document.getElementsByName(name) но на твоей тестовой странице это не сработает она сляпана как попало

Kolyaj 30.07.2010 13:07

Вот именно, откуда берётся переменная x :)

IE создаёт глобальные JavaScript-переменные для элементов с указанным id или name. Поэтому в нём переменная x определена. Opera, как всегда, передразнивает остальные браузеры, поэтому в ней x тоже определена. А в остальных браузерах придётся по-хорошему: сначала найти элемент в DOM дереве, а потом уже брать его значение. Вот Octane вам и дал соответствующую ссылку.

Uhehesh 30.07.2010 13:12

Действительно, всё заработало!
А ведь вчера хотел так сделать, но ужасно хотелось спать и подумал, что всё будет работать и так.
Вы мне очень помогли, каждому - по плюсу. :)

Буду аккуратнее в следующий раз и буду проверять несколько раз. :)


Часовой пояс GMT +3, время: 00:09.