powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Mozilla firefox
11 сообщений из 11, страница 1 из 1
Mozilla firefox
    #35722101
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я уверен, что этот вопрос уже обсуждался, но в faq ни поиском я его не нашел.. :(

Дело в том, что не срабатывает получение элемента путем document.getElementById, причем только в firefox

Вот весь код, но в принципе, в нем нет особой надобности:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <link rel='stylesheet' type='text/css' href="css/index.css">
    <title></title>
    <script type="text/javascript">
        var x= 0 ;
        var y= 0 ;
        var _move=false;
        var _xOffset= 0 ;
        var _yOffset= 0 ;

        var _xOffsetContent= 0 ;
        var _yOffsetContent= 0 ;
        var content;
        function go(component,method){
            alert(component.id);
            method();
        };
        function addListeners(component){
                component.attachEvent("onmousedown",onMouseDown);
                component.attachEvent("onmousemove",onMove);
                component.attachEvent("onmouseup",onMouseUp);

                document.attachEvent("onmouseup",onMouseUp);
        };

        function onMouseUp(e){
            _move=false;
            var object = event.srcElement;
            object.style.cursor="default";
        };

        function onMouseDown(e){
             var object=event.srcElement;
             object.style.cursor="move";
             var x=parseInt(event.clientX);
             var y=parseInt(event.clientY);

            _xOffset=parseInt(object.style.left)-x;
            _yOffset=parseInt(object.style.top) - y;

            _xOffsetContent=parseInt(content.style.left)-x;
            _yOffsetContent=parseInt(content.style.top) - y;
             _move=true;

        };


        function onMove(e){
            var object = event.srcElement;
            if(_move){
                x=e.clientX;
                y=e.clientY;
                move(object);
            }
            object.style.cursor="move";

        };

        function move(component){
            var x=parseInt(event.clientX);
            var y=parseInt(event.clientY);
            content.style.left=(_xOffsetContent+x)+'px';
            content.style.top=(_yOffsetContent+y)+'px';
            component.style.left=(_xOffset+x)+'px';
            component.style.top=(_yOffset+y)+'px';

        };

        window.onload=function(){
            addListeners(document.getElementById('moverid'));
            content=document.getElementById('content');
        };
        </script>
</head>
<body>



<div id="content" style="position:absolute;left:0;top:20px;width:100px;height:100px;background:red">
    <input type="button" id="b" value="Button" />
    </div>
<div id="moverid" style="position:absolute;width:100px;height:20px;background:blue;left:0;top:0">This is a text
        </div>

<!--<input type="button" style="position:absolute; z-index:2" onclick="addListeners(document.getElementById('moverid'));" /> -->

</body>
</html>



В функции
Код: plaintext
1.
2.
3.
4.
window.onload=function(){
addListeners(document.getElementById('moverid'));
content=document.getElementById('content');
};

document.getElementById('moverid') не срабатывает. Только под фаервоксом.. Я так понимаю, что тут какая-то тонкость касающаяся именно фаерфокса..
Подскажите, пожалуйста...
Уже сталкивался с этим, но решения пока не нашёл...

Заранее благодарен..


P.S.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function getElById(elId)
{
if(document.getElementById)
{return document.getElementById(elId);}
else if(document.all)
{return document.all[elId];}
else {return null;}
}
Получать элемент с помощью такой функции тоже пробовал


P.P.S
И присваивать слушатели после события на другом элементе (типа при нажатии на кнопку) тоже пробовал - вместо на событие загрузки окна...
(
Код: plaintext
1.
addListeners(document.getElementById('moverid'));
content=document.getElementById('content');
)

Пробовал и так:
Код: plaintext
1.
2.
3.
4.
window.onload=function(){
            addListeners(mover_id);
            content=content_id;
        };



работает везде, кроме фаерфокса опять же. :)
Фаерфокс 3.0.3
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722161
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Кит , сделай нормальный тестовый пример. Без всякого лишнего кода...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722171
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. А что говорит Mozilla FireFox -> Tools -> Error Console ? /me думает: Вы бы хоть, для приличия, проверяли, что таки возвращает document.getElementById.
2. Сдаецо мне дело не в document.getElementById, а
Большой Синий Кит
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
function addListeners(component){
	component.attachEvent("onmousedown",onMouseDown);
	component.attachEvent("onmousemove",onMove);
	component.attachEvent("onmouseup",onMouseUp);

	document.attachEvent("onmouseup",onMouseUp);
};

Event'ы прикручивать, IMHO, лучче так:
Код: plaintext
1.
2.
3.
4.
5.
6.
if("attachEvent" in document)
	document.attachEvent("onkeyup",OnKeyUp);
else if("addEventListener" in document)
	document.addEventListener("keyup",OnKeyUp,false);
else
	document.onkeyup=OnKeyUp;
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722195
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. сдесь еще посмотрите...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722250
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое!

переделал вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
   if("attachEvent" in component){
                component.attachEvent("onmousedown",onMouseDown);
                component.attachEvent("onmousemove",onMove);
                component.attachEvent("onmouseup",onMouseUp);

                //document.attachEvent("onmouseup",onMouseUp);

                }else if("addEventListener" in component){
                    component.addEventListener("onmousedown",onMouseDown,false);
                    component.addEventListener("onmousemove",onMove,false);
                    component.addEventListener("onmouseup",onMouseUp,false);

                    //document.addEventListener("onmouseup",onMouseUp,false);
                }else{
                    component.onmousedown = onMouseDown;
                    component.onmousemove = onMove;
                    component.onmouseup = onMouseUp;

                   // document.onmouseup = onMouseUp;
                }

В консоли ошибок:

Ошибка: Permission denied to call method Location.toString

Скажите, пожалуйста,то это значит и почему выскакивает? :)
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722288
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. /me думает: Вам бы Фленагана...
2. Большой Синий Кит
component.addEventListener(" on mousedown",onMouseDown,false);

Ex_Soft
document.addEventListener("keyup",OnKeyUp,false);

3. Большой Синий Кит
В консоли ошибок:

Ошибка: Permission denied to call method Location.toString

Вы уверены, что это относится именно к этому куску? Кликните по ней - Вас, по идее, должно перебросить на Page Source в то место...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722340
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:)

Event is not defined...


на строке:
var object = event.srcElement;


Предыдущая ошибка продолжает появляться, но не ссылается на серс пейдж...
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722346
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Фленагана куплю обязательно, спасибо!

В чем же может быть дело..
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722361
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Кит
Event is not defined

тынць

P.S. Вот Вам дрозофила
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722517
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Огромное Вам спасибо!

Еще надо добавить:

Код: plaintext
1.
var object = event.srcElement ? event.srcElement : event.target;
...
Рейтинг: 0 / 0
Mozilla firefox
    #35722535
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Кит
Код: plaintext
1.
var object = event.srcElement ? event.srcElement : event.target;

это записывается как
Код: plaintext
var object = event.srcElement || event.target;
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Mozilla firefox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]