Отключение в Мозиле и Опрере Dragindrop

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем garrymax, 13 фев 2007.

Статус темы:
Закрыта.
  1. garrymax

    garrymax Гость

    Есть функция move:
    Код (Text):
     function move(e){
    var x, y;
    if (typeof e != "undefined") { y = e.pageY; x = e.pageX; } else { x = window.event.clientX; y = window.event.clientY; }
    if(ObgDivWinForMove){
    ObgDivWinForMove.style.top = y - MouseOffsetY
    ObgDivWinForMove.style.left= x - MouseOffsetX
    }
    MouseX=x; MouseY=y;
    return false;
    }
    function init(){
    document.onmousemove = move;
    }
    Используется для перетаскивания нескольких объектов (есть просто DIV's, а есть с картинками). В Ослике все нормально работает, но когда в Опере или Мозиле пытаешься перетащить DIV с картинкой вверх (только вертикально - горизонтально все нормально), то в первый момент начинается глюк (не путать с немецким счастьем) - Опера явно понимает перетаскивание, как DragInDrop на строку адреса, Мозила похоже тоже самое делает, но более обширно (не только строка адреса). Дополнительно теряется событие OnMouseUp для этого объекта, если резко сместить мышь, но это можно решить OnMouseOut - не актуально.

    Переписывать на обширные варианты, которые так не воспринимают, уже поздно - это только актуальный кусок функции (есть еще один кусок, но при перемещении он всегда false), а объектов много и они разные, но проблема только с теми, у которых есть картинка в момент события OnMouseDown (Эта функция только помешает объект в переменную ObgDivWinForMove и вычисляет смещение позиции объекта от позиции курсора). Нужно только отключить в Опере и Мозиле DragInDrop, но эти броузеры не знают события OnDrag и подобные им. В сети для скриптов ничего не нашел.

    Вопрос: Как скриптом отключить в Мозиле и Орере события DragInDrop (можно и для картинки отдельно) или как минимально изменить код функции, что бы вертикальное перетаскивание картинок не воспринималось этим броузерами, как DragInDrop. Предложения по background-image не пройдут - на картинках MAP's замысловатого узора. Возможно проблема только в свойствах картинки, но как эти свойства отрубить.
     
  2. garrymax

    garrymax Гость

    Уваж. модераторам: Можно закрыть тему - выяснил (если кто столкнется): внешнему объекту onmousedown="return false;" .
    Для BODY document.onmousedown="return false;", а уже нужным объектам присваивать свою функцию этого события.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей