2012-06-08 7 views
4

Это возвращает пустую строку, когда я пытаюсь определить текст по умолчанию направление в ...JavaScript метод возвращает реж пустую строку для текста направления

alert(document.getElementById('example').dir); 

Я хотел бы, чтобы определить, является ли направление текста по умолчанию является LTR или РТЛ ,

+1

См. Http://stackoverflow.com/questions/1169967/inherited-css-values-via-javascript для доступа к унаследованному стилю. – Ord

+0

Не редактируйте мои сообщения, если вы сначала не согласны с комментарием; все изменения только разбавили детали и смысл моих вопросов. – John

ответ

0

Я предупредит во время отладки, это редактируется другим пользователем без моего согласия; ответ, который я принял, отредактировал, чтобы выровнять его с моим вопросом, также был перезаписан. Поскольку каждый настаивает на том, чтобы сказать мне, как кодировать, я вынужден ответить на мой вопрос, чтобы те, кто учился на моем вопросе, действительно могли учиться в стиле, который я изучаю. Я оставлю свой +1 голос первому человеку, хотя не буду принимать его в качестве ответа, поскольку он не ответил прямо на мой вопрос без чрезмерных изменений.

alert(window.getComputedStyle(document.getElementById('editor_rich')).direction); 
+0

Что не так в стиле других людей? Ваш вопрос касался текстового направления по умолчанию, а не форматирования кода, поэтому вы должны просто игнорировать это. – Bergi

+0

Кто-то решил отредактировать мой пост, это происходит постоянно, и ваш ответ был основан на чужой версии моего вопроса, а не на моем вопросе. Я отредактировал ваш пост, чтобы отразить его по моему первоначальному вопросу, а затем вы изменили его, чтобы ответить на редактирование другого человека. Хороший ответ отражает исходный вопрос, когда и вопрос, и ответ являются, по крайней мере, технически опытными. – John

+1

ОК, я вижу; но [это не я] (http://stackoverflow.com/spected-edits/283820). Btw никто не заботится о предупреждениях, мы знаем, как регистрировать значение или делать что-либо еще с этим - вот почему я просто код «вернуться», даже если он не находится в теле функции. – Bergi

0

если он пуст, что означает, что он не указан в атрибуте вашего элемента dir.

4

ltr/rtl определяется свойством css "direction". Его также можно определить с помощью атрибута «dir» для элемента в DOM.

Если вы проверяете для значения атрибута, используйте метод GetAttribute:

document.getElementById('example').getAttribute('dir'); 

Кроме того, проверьте стиль элемента. По умолчанию он равен ltr, поэтому если undefined, он должен возвращаться как пустая строка. В противном случае он должен сказать "RTL"

document.getElementById('example').style.direction; 

https://developer.mozilla.org/en/CSS/direction

2

Я хотел бы использовать

var elm = document.getElementById('example') || document.body; 
return window.getComputedStyle(elm).direction; 
+0

Использование alert (window.getComputedStyle (elm) .direction) ;, спасибо. – John