Могу ли я динамически изменить атрибут inserttafter элемента XUL? - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть элемент XUL menuitem, который использует атрибут inserttafter , чтобы расположиться позади определенного элемента контекстного меню. Есть один крайний случай, для которого я хотел бы изменить положение своего пункта меню. Если я динамически изменю атрибут insertafter с помощью JavaScript, будет ли позиция моего элемента автоматически изменена в следующий раз при отображении контекстного меню? Или insertafter применяется только во время инициализации Chrome?

В документации указано:

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

Однако в моем случае оба идентификатора, которые я мог бы использовать, присутствуют физически (один или другой просто свернут, в зависимости от обстоятельств). Таким образом, список через запятую мне не поможет.

1 Ответ

1 голос
/ 05 февраля 2012

Нет, наложение применяется при загрузке окна - изменение атрибута insertafter после этого вообще ничего не даст, тогда этот атрибут не имеет особого значения.Вы должны использовать обычные методы DOM, а именно:

var myElement = document.getElementById("my-element");
var insertAfter = document.getElementById("element-insert-after");
if (myElement && insertAfter)
  insertAfter.parentNode.insertBefore(myElement, insertAfter.nextSibling);
...