2010-11-12 2 views
-1

привет у меня проблема с моим кодом .. почему это не работает .. ?? есть ли ошибка с моим кодом?позиция в javascript

function selectWord() { 
     var select = window.getSelection(); 

     if (select.getBoundingClientRect) {   
      var rect = select.getBoundingClientRect(); 
      x = rect.left; 
      y = rect.top; 
      w = rect.right - rect.left; 
      h = rect.bottom - rect.top; 

      alert (" Left: " + x + "\n Top: " + y + "\n Width: " + w + "\n Height: " + h); 
     } 
     else { 
      alert ("Your browser does not support!"); 
     } 
    } 

спасибо

+7

Что «это не работает» означает? Какой результат вы ожидаете *, и что вы получаете *? –

+0

У вас есть 4 подразумеваемых глобала (x, y, w, h), исправьте это. Кроме того, почему вы помещаете пробелы между именем функции и оператором вызова? Используйте 'foo()' вместо 'foo()'. –

ответ

1

getBoundingClientRect является метод DOM Node, результат метода GetSelection не DOM Node.

Может существовать способ использования свойств anchorNode, anchorOffset, focusNode и focusOffset возвращаемого выбора.

Если вы используете firefox + firebug, вы можете сделать console.log (выберите) и проверить свойства, к которым у вас есть доступ.

2

Возможно, вы используете это в браузере, который его не поддерживает. IE не поддерживает GetSelection и Fx 3.7 должен быть первым, чтобы поддержать getBoundingClientRect

getBoundingClientRect problem with Firefox