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

Ваш аккаунт

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

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

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

JavaScript и Mozila Firefox

3.0K
08 июня 2006 года
Inga
79 / / 27.12.2005
Здравствуйте!
Подскажите, кто знает:
мне надо, чтобы координата x была на 30 меньше реальной, при щелчке мыши на картинке. Пишу <IMG src="Отчет/Image1.bmp" onclick="window.status = 'x = ' + (event.offsetX - 30);">
Скажите как подправить код, чтобы работал и в IE и в браузере Mozila Firefox?
Сейчас работает только в IE.
В настройках Mozil-ы нашла галочку, чтобы javascript поддреживал строку состояния. В результате в строке сотояния при щелчке на картинку появляется надпись Х=Nan очевидно выражение onclick="window.status = 'x = ' + (event.offsetX - 30);" Mozila не может вычислить. Помогите переделать скрипт, чтобы вычислял для обоих браузеров, please. :)
5.4K
08 июня 2006 года
He!p
39 / / 10.06.2004
var x = (is.ns)? e.pageX : event.x;
var y = (is.ns)? e.pageY : event.y;
думаю поможет;)
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
Если можно, то подробне пожалуйста. Я начинающая в javascript. :)
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
var x = (is.ns)? e.pageX : event.x;
Если ns браузер то используем e.pageX (координата по Х), иначе (т.е. MSIE браузер) то берем event.x

или проще для мозилки используется e.pageX, а для експлорера event.x
15
09 июня 2006 года
shaelf
2.7K / / 04.05.2005
2Inga Он предлагает использововать обычную конструкцию
 
Код:
if() {}
else {}

Только синтаксис другой.
2He!p Предлагаю в следующий раз, когда человек говорит, что он начинающий, то использововать нормальный синтаксис.
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
)ок...я просто подумал что она спарашивает по поводу e.pageX & event.x
в принципе ей это и надо было...а по поводу замечания-учту;)
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
Из написанного поняла так: :)
[html]
<script>
function fPosX()
{
var pos;
if(is.ns) {pos= e.pageX-30;}
else {pos = event.x-30;}
window.status=(pos);
}
</script>
</head>

***********************************
<td>
<img src="Image2.bmp" alt="" onclick=fPosX();>
</td>
[/html]

Не работает. :( Как определить is?
352
09 июня 2006 года
skywalker
694 / / 10.02.2006
Inga, попробуй так:

[html]
<script>
function fPosX(pos)
{
window.status=(pos);
}
</script>
<img src="foto.gif" alt="" onclick="java script:if(navigator.appName.substring(0,3)=='Mic'){pos = event.x-30;}else {pos= e.pageX-30;}fPosX(pos);">
[/html]

Длинно и коряво :), но поясню navigator.appName.substring(0,3)=='Mic' - определяешь, что если первые три буквы в имени браузера Mic, то это експлорер (полное имя Microsoft Internet Explorer), если нет то значит выполняется код после else, алгоритм такой, лучше почистить мой код и привести к нормальному виду :) Надеюсь понятно.
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
или не так длинно)))

[html]if(navigator.appName.indexOf("Microsoft") != 0) {
alert("мозилка");
}
else {
alert("не мозилка");
}
[/html]
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
[quote=skywalker]Inga, попробуй так:
....
[/quote]

Спасибо код выглядит очень красиво. Такой вариант мне очень нравиться. Но пока не работает. :(
Почему-то на границе рисунка он показывает 7, а не -30:confused:
а, в Mozile снова пишет NaN (не может вычислить).
Правильно всегда показывает код для IE <img src="Image3.bmp" alt="" onclick="window.status = 'x = ' + (event.offsetX - 30);"> на начальной границе рисунка строго показывает -30, но он для Mozily-ы не подходит. Буду экспереминтировать дальше. :)
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
немного я не дописал...в мазиле пишем не e.pageX а event.pageX...получаем так

<html>
<head>
<script>
function fPosX(posx,posy)
{
alert(posx+" "+posy);
}
</script>
</head>
<body>
<img src="foto.gif" alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic'){fPosX(event.x-30,event.y-30)}else {fPosX(event.pageX-30,event.pageY-30)};">
</body>
</html>

а на начальной границе -30 как тебе и надо)
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
Только я немного оплошал...не вник в задачу твою) дело в том что еввент.х это координаты мышки в окне браузера а тебе как я понял надо координаты над кортинкой..вот немного преобразовал и получилось то что тебе надо)

[html]
<html>
<head>
<script>
function fPosX(posx,posy)
{

var obj=document.getElementById("img");


img_x=obj.offsetLeft;
img_y=obj.offsetTop;

new_x=posx-img_x;
new_y=posy-img_y;

alert(new_x+" "+new_y);
}
</script>
</head>
<body>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="foto.gif" name='img' id='img' border='5' alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic'){fPosX(event.x-30,event.y-30)}else {fPosX(event.pageX-30,event.pageY-30)};">
</body>
</html>
[/html]
352
09 июня 2006 года
skywalker
694 / / 10.02.2006
Inga, вот так работает:

[html]
<script>
function fPosX(pos)
{
/*window.status=(pos);*/
alert(pos);
}
</script>

<img src="foto.gif" style="border:solid 1px red;" alt="" onclick="java script:if(navigator.appName.substring(0,3)=='Mic'){pos = event.x;}else{pos= event.pageX;}fPosX(pos);">
[/html]


Хотя первая странная вещь, граница действительно начинается с целого значения, а не с нуля, а вторая window.status=(pos); не работает в FireFox, почему-то :(
Я прамо разочаровался в FF
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
Оба кода на границе показывают -15 (рисунок прилагаю)

Вроде все выглядит правильно, но как же получить -30? Пока это делает только код: onclick="window.status = 'x = ' + (event.offsetX - 30);" Для IE(для Мозилы нет).
Неужели у вас показывает -30?


P.S.
Вот пришла к такому коду с вашей помощью:
Вот первое условие правильное, помогите else переделать <td><img src="Image2.bmp" name='img' id='img' alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic')
{window.status = 'x = ' + (event.offsetX - 30)}else {fPosX(event.pageX-30)};">
</td>
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
[quote=Inga]Оба кода на границе показывают -15 (рисунок прилагаю)

Вроде все выглядит правильно, но как же получить -30? Пока это делает только код: onclick="window.status = 'x = ' + (event.offsetX - 30);" Для IE(для Мозилы нет).
Неужели у вас показывает -30?[/quote]

Так вот у меня все работает... возьми код приведенный ниже и просто создай новый файлик и проверь в мазиле все ок да и в ИЕ тоже думаю также

[html]
<html>
<head>
<script>
function fPosX(posx,posy)
{

var obj=document.getElementById("img");


img_x=obj.offsetLeft;
img_y=obj.offsetTop;

new_x=posx-img_x;
new_y=posy-img_y;

alert(new_x+" "+new_y);
}
</script>
</head>
<body>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="foto.gif" name='img' id='img' border='5' alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic'){fPosX(event.x-30,event.y-30)}else {fPosX(event.pageX-30,event.pageY-30)};">
</body>
</html>
[/html]
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
Большое спасибо, теперь работает! :)
Оставила такой вариант:

[html]
<html>
<head>
<script>
function fPosX(posx)
{
var obj=document.getElementById("img");
img_x=obj.offsetLeft;
new_x=posx-img_x;
window.status=('X = ' + new_x);
}
</script>
</head>
<body>
<img src="Image1.bmp" name='img' id='img' alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic'){window.status = 'x = ' + (event.offsetX - 30)}else {fPosX(event.pageX-30)};">
</body>
</html>
[/html]

Для IE оставила старый код, потому что у меня при написании {fPosX(event.x-30,event.y-30)} упорно показывало -28 в IE. Теперь в обоих браузерах показывает -30. Ура и большое всем спасибо!:rolleyes:


P.S. Маленький вопрос отсался. Зачем в коде id='img' ?
352
09 июня 2006 года
skywalker
694 / / 10.02.2006
[QUOTE=Inga]Большое спасибо, теперь работает! :)
P.S. Маленький вопрос отсался. Зачем в коде id='img' ?[/QUOTE]
Доступ по средствам document.getElementById, к свойствам элимента осуществляется благодаря объявлению этому элименту id , а вот name='img' можешь удалить, оно тут не нужно.
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
[quote=skywalker]Доступ по средствам document.getElementById, к свойствам элимента осуществляется благодаря объявлению этому элименту id , а вот name='img' можешь удалить, оно тут не нужно.[/quote]

Я почему спросила, просто я удалила id='img' и оно работает!
Вот весь код:
[html]
<html>
<head>
<script>
function fPosX(posx)
{
var obj=document.getElementById("img");
img_x=obj.offsetLeft;
new_x=posx-img_x;
window.status=('X = ' + new_x);
}
</script>
</head>
<body>
<img src="Image1.bmp" name='img' alt="" onclick="java script:if(navigator.appName.substring (0,3)=='Mic'){window.status = 'x = ' + (event.offsetX - 30)}else {fPosX(event.pageX-30)};">
</body>
</html>
[/html]

Тяжело что-то дается мне javascript, все в тумане.:rolleyes:
4
09 июня 2006 года
mike
3.7K / / 01.10.2002
Рад наблюдать за такой плодотворной дискуссией, но...
[color=red]Предупреждение: такие объемы кода нужно форматировать[/color]

[ code ] [ /code ], [ php ] [ /php ], [ html ][ /html ]
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
попробуй в мазиле...а почему работает только одному билу известно наверное)
3.0K
09 июня 2006 года
Inga
79 / / 27.12.2005
[quote=He!p]попробуй в мазиле...а почему работает только одному билу известно наверное)[/quote]

Да, в Мозилке не работает.:p Теперь точно Мозилку не люблю!:)

Большое всем спасибо за помощь!
5.4K
09 июня 2006 года
He!p
39 / / 10.06.2004
да на здоровье... ты пропиши id='img' и все будет работать)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог