Мой первый опыт с 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-браузерах он отказывается работать, что бы я ни делал. В чём же проблема? :-? |
|
Уфф... Не понимаю!
Я плохо понял, как мне это должно помочь. :(
|
x у вас откуда берётся?
|
Из инпута (текст).
|
Переменная x откуда берётся, а не её значение?
|
Что-то я ничего не понимаю. :(
Боюсь ответить неправильно, но отвечу хоть как-нибудь... Исправьте, если я ошибся, учиться нужно. :) Скрипт можно увидеть тут. x - инпут текста, находящийся на этой HTML-странице (вы это уже поняли :)). Но откуда берётся переменная x... :-? |
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) но на твоей тестовой странице это не сработает она сляпана как попало |
Вот именно, откуда берётся переменная x :)
IE создаёт глобальные JavaScript-переменные для элементов с указанным id или name. Поэтому в нём переменная x определена. Opera, как всегда, передразнивает остальные браузеры, поэтому в ней x тоже определена. А в остальных браузерах придётся по-хорошему: сначала найти элемент в DOM дереве, а потом уже брать его значение. Вот Octane вам и дал соответствующую ссылку. |
Действительно, всё заработало!
А ведь вчера хотел так сделать, но ужасно хотелось спать и подумал, что всё будет работать и так. Вы мне очень помогли, каждому - по плюсу. :) Буду аккуратнее в следующий раз и буду проверять несколько раз. :) |
Часовой пояс GMT +3, время: 12:59. |