Методы работы с динамическими свойствами |
Все элементы Web страниц, входящие в объектную модель браузера Internet Explorer, поддерживают четыре метода, определённые для работы с динамическими свойствами.
Метод setExpression нужен для установки динамического свойства. Этот метод может иметь два разных формата. В первом формате называется свойство элемента Web страницы, чем достигается привязка выражения к названному свойству элемента (свойство должно быть доступно для чтения и записи). setExpression(“{имя свойства}”, “{выражение}” [, “{язык}”]) В качестве языка можно задать “JavaScript”(это не обязательно). par1.setExpression(“innerText”, “getSomeText(123)”); Здесь к свойству innerText абзаца мы привязываем функцию, результат вычисления которой, будет присваиваться этому свойству.
При использовании второго формата, вызывается метод setExpression, объекта style (currentStyle), чем достигается привязка выражения к атрибуту стиля элемента Web страницы: style.setExpression(“{имя атрибута}”, “{выражение}” [, “{язык}”]) Например: par1.style.setExpression(“color”, “getSomeColor()”); Если есть метод, привязывающий к атрибуту или свойству выражение, то должен быть и метод, возвращающий текст этого выражения. Это getExpression. Вот его формат:
getExpression(“{имя свойства}”) Этот метод может быть вызван как для объекта элемента Web страницы, так и для style: par1.getExpression(“innerText”); Метод removeExpression удаляет динамическое свойство: removeExpression(“{имя свойства}”)par1.removeExpression(“innerText”);
Есть ещё один метод, который позволяет перевычислить все выражения, привязанные к атрибутам и свойствам всех объектов. Обычно нужные выражения перевычисляются, когда Web браузер сочтёт нужным. Но могут случиться ситуации, когда какое-то выражение, привязанное к динамическому свойству, использует значение другого динамического свойства, и первое выражение перевычисляется перед вторым. Web страница будет отображена неверно. Для исключения таких ситуаций предусмотрен метод recalc объекта document. document.recalc([true|false]); Видно, что этот метод может принимать один необязательный параметр. Если он равен true (по умолчанию), то перевычисляются те выражения, аргументы которых изменились после предыдущего перевычисления. Если false, перевычисляются все выражения.
|