Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JavaScript в разных браузерах

286
19 апреля 2007 года
misha_turist
572 / / 28.11.2005
Доброго времени суток!

У меня есть две процедуры
 
Код:
<SCRIPT language=javascript1.1>
function send (){
window.navigate (бла бла бла + "?date_home="+document.date_find.date_home.value+"&date_end="+document.date_find.date_end.value);
};
</SCRIPT>

и
Код:
<SCRIPT language=javascript1.1>
function valid_date (input)
{
 if (input.value!="")
 {
   var validDate = /^\d{2}\.\d{2}.\d{4}$/;
   if (!validDate.test(input.value))
   {
    input.focus();
    input.select();
    alert("Не верный формат даты!");
   };
 };
}
</SCRIPT>

Суть проблемы в том, что в IE все работает заечательно, но Mozilla выдаёт ошибки:
- Для первого, что window.navigat не является функцией
- Для второго зацикливается т.е. вначале выводик какоето не понятное пустое окно, потом выводит окно с нужным мне сообщением, но при его закрытии открывает снова.

Не подскажите в чем тут дело и как эту проблему решить?
Сзаранее спасибо!

Полный код страницы сдесь:
[html]<html>

<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

</head>

<body>

<SCRIPT language=javascript1.1>
function send (){
window.navigate (document.url + "?date_home="+document.date_find.date_home.value+"&date_end="+document.date_find.date_end.value);
};
</SCRIPT>
<SCRIPT language=javascript1.1>
function valid_date (input)
{
if (input.value!="")
{
var validDate = /^\d{2}\.\d{2}.\d{4}$/;
if (!validDate.test(input.value))
{
input.focus();
input.select();
alert("Не верный формат даты!");
};
};
}
</SCRIPT>

<form name="date_find" method="POST" action="--WEBBOT-SELF--">
<noscript>Для работы поиска необходима потдержка JavaScript 1.1</noscript>
<p>Формат вворимой даты "dd.mm.yyyy"</p>
<table border="0">
<tr>
<td>Начало периода</td>
<td><input type="text" name="date_home" size="20" onblur="java script:valid_date(date_home);"></td>
</tr>
<tr>
<td>Конец периода</td>
<td><input type="text" name="date_end" size="20" onblur="java script:valid_date(date_end);"></td>
</tr>
</table>
<p><input onclick="java script:send();" type="button" value="Построить" name="Send"></p>
</form>

</body>

</html>[/html]
13K
19 апреля 2007 года
whitehood
73 / / 02.11.2006
Вместо первой можно использовать replace()
 
Код:
location.replace("http://example.com");
286
19 апреля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: whitehood
Вместо первой можно использовать replace()
 
Код:
location.replace("http://example.com");



Спасибо!

253
19 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
Желательно использователь document.location.href = 'http://url', т.к replace() не сохранит текущую страницу в истории, и кнопки Вперед/Назад не будут работать
А во втором случае ты ставишь focus() перед выводом сообщения, которое заставляет терять фокус ввода и onblur снова срабатывает, затем снова фокус и т.д. Поставь alrt() перед focus()
286
19 апреля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Proger_XP
Желательно использователь document.location.href = 'http://url', т.к replace() не сохранит текущую страницу в истории, и кнопки Вперед/Назад не будут работать
А во втором случае ты ставишь focus() перед выводом сообщения, которое заставляет терять фокус ввода и onblur снова срабатывает, затем снова фокус и т.д. Поставь alrt() перед focus()



Спасибо, помогло, но теперь другая проблема - во второй проблеме Mozilla фокус на поле не устанавливает. (

253
19 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
В onblur как параметр в обоих случаях передавай this
onblur="valid_date(this);"
286
19 апреля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Proger_XP
В onblur как параметр в обоих случаях передавай this
onblur="valid_date(this);"



Не помогло - активизируется следующий эллемент и если это edit то выделяется весь текст в нём.

Но эти пакости только в Mozile в IE всё работает замечательно...

253
19 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
Да, странно, в Опере тоже все работает
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
 if (input.value!="")
 {
   var validDate = /^\d{2}\.\d{2}.\d{4}$/;
   if (!validDate.test(input.value))
   {
    alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
   };
 };
}
286
20 апреля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Proger_XP
Да, странно, в Опере тоже все работает
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
 if (input.value!="")
 {
   var validDate = /^\d{2}\.\d{2}.\d{4}$/;
   if (!validDate.test(input.value))
   {
    alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
   };
 };
}



Спасибо помогло. )

4.4K
20 апреля 2007 года
frosty
53 / / 24.09.2004
Не стала создавать новую тему, коли такой вопрос уже есть.
Помогите плиз?
Скрипт реализует анимацию с использованием списка gif картинок (через определенное время (delay) текущая картинка сменяется на следющую). В IE и Mozilla всё работает. ни одной ошибки, а в Opera не работает совсем и консоль ошибок пустая.
Вот код:

<html>
<head>
<title></title>
</head>
<script language='JavaScript' type='text/JavaScript'>
<!--
delay = 1000;
imageNum = 1;
QImage = 4;
ImagePath = "images/";
// Предварительная загрузка изображений анимации

theImages = new Array()
for(i = 1; i < (QImage+1); i++) {
theImages = new Image();
theImages.src = ImagePath + i + ".gif";
}

function animate() {
document.animation.src = theImages[imageNum].src;
imageNum++;
if(imageNum > QImage) {
imageNum = 1;
}
}

//-->
</script>

<body BGCOLOR="white">
<IMG NAME="animation" SRC="images/1.gif" ALT="[Animation]" onLoad="setTimeout('animate()', delay)">
</body>
</html>
286
20 апреля 2007 года
misha_turist
572 / / 28.11.2005
Цитата: Proger_XP
Да, странно, в Опере тоже все работает
Проблема решается установкой таймера
Код:
function valid_date (input)
{
var input = input;
 if (input.value!="")
 {
   var validDate = /^\d{2}\.\d{2}.\d{4}$/;
   if (!validDate.test(input.value))
   {
    alert("Не верный формат даты!");
setTimeout(function () { input.focus(); input.select(); }, 50);
   };
 };
}



К слову, переменную я в начале не заметил и не использовал, но всё равно заработало хорошо.)

253
20 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
Ее можно было и не ставить, это я зря приписал ее :)
4.4K
22 апреля 2007 года
frosty
53 / / 24.09.2004
А с моей проблемой есть какие-то решения? Просто нужно очень :)
12
22 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: frosty
А с моей проблемой есть какие-то решения? Просто нужно очень :)


Смена картики в JS через DOM тема настолько затертая, что просто лень даже, что говорить особо в свете того, что тебе лень сходить в поиск...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог