Произошла очень странная проблема, когда я пытался включить lib (Beard.js) для поддержки движка шаблонов JavaScript Haml.
Не удалось правильно загрузить Haml.Я отследил код и выяснил, что Haml никогда не загружался на страницу.После долгих попыток и неудач мне удалось заставить его работать.Странная вещь, которую я нашел:
в исходном Haml lib, это:
var Haml;
(function(){
...
Haml = function(){ ... }
...
}());
Я изменил код на:
var Haml;
(function(){
...
window.Haml = function(){ ... }
...
}());
тогда он работает ..
ПОЧЕМУ ???Разве Haml не должен автоматически распознаваться как определенное в глобальной области видимости?
Environment - IE8Haml.js - https://github.com/creationix/haml-js
Bear.js - https://github.com/jspopisno1/Beard
-------------- ОБНОВЛЕНИЕ ---------------
в Haml.js, это:
var Haml;
(function(){
...
Haml = function Haml(){ ... }
...
}());
Я предполагаю, что в javascript утверждение "function Haml () {}" делает Haml локальным var.Однако, почему Haml может быть правильно загружен в Firefox & Chrome ????