Назначить ссылку на свойство в JavaScript - PullRequest
0 голосов
/ 22 ноября 2011

Я работаю над небольшим JavaScript-скриптом для редактирования CSS-кода, и я обнаружил, что есть много ... особенностей, если можно так сказать, с Internet Explorer по сравнению с другими браузерами.Например, объект rules объекта document.stylesheet называется cssRule для большинства браузеров, а правило для IE.

Здесь я хотел бы назначить ссылку на свойство объекта, содержащего размерwindow (window.innerWidth & document.body.clientWidth), чтобы не проверять каждый раз, должны ли использоваться имена объектов IE или «нормальные».

Это хорошая / плохая идея?

Прежде чем опубликовать вопрос, я подумал еще немного и придумал решение ..

function CommonObject(obj, propertyName){
    this.get = function() { return obj[propertyName]; }
}

Есть ли другой / лучший способ сделать это?

Спасибо

(Да, я знаю, что делать это на самом деле не нужно, тем более, что я делаю небольшой сценарий, а производительность на самом деле не представляет проблемы, но я в основном проявляю любопытство.)

1 Ответ

0 голосов
/ 01 марта 2014

Использовать таблицу сопоставления:

var css = {"rules": {"ie":"rule","w3":"cssRule"} }

var browser = !!window.XPathEvaluator ? "w3" : "ie"

var foo = document.styleSheets["0"][css.rules[browser] ]
...