У меня есть следующая функция, которую я использую (к счастью, как хак, поскольку я до сих пор не понял правила области видимости переменных bizzare javascript), чтобы извлекать все глобальные переменные с известным префиксом из скрипта.
Функция хорошо работает с FF и Google Chrome (предположительно, она будет работать со всеми производными браузерами Moz). Тем не менее, я только что протестировал его в IE8 (он же браузер дяди Билла [как в Билле Гейтсе]), и (возможно, не удивительно) эта функция не работала. Я отладил функцию, и оказалось, что глобальные переменные хранятся в другом объекте (я могу ошибаться, я читал на JS только пару дней). В любом случае, вот функция, которая корректно работает в браузерах на основе Moz:
function getGlobalProperties(prefix) {
var keyValues = [], global = window; // window for browser environments
for (var prop in global) {
if (prop.indexOf(prefix) == 0) // check the prefix
keyValues.push(prop + "=" + global[prop]);
}
return keyValues.join('&'); // build the string
}
Нужна ли мне условная ветвь (и тест, чтобы увидеть, работает ли под IE)?