Есть код на JavaScript:
"use strict";
var site = (function ()
{
var loader_html = '';
var loader_image_width = 100;
var loader_image_height = 100;
return
{
window_subroutines : {
get_scrollTop : function () { return (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop); },
get_scrollLeft : function () { return (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft); },
get_clientWidth : function () { return (document.documentElement && document.documentElement.clientWidth) || (document.body && document.body.clientWidth); },
get_clientHeight : function () { return (document.documentElement && document.documentElement.clientHeight) || (document.body && document.body.clientHeight); }
},
loader : {
show : function () {
var loader_elem = document.getElementById ("loader_container");
var left_coord = Math.round(site.window_subroutines.get_scrollLeft() + ( site.window_subroutines.get_clientWidth() / 2 ) - ( loader_image_width / 2 )) + "px";
var top_coord = Math.round(site.window_subroutines.get_scrollTop() + ( site.window_subroutines.get_clientHeight() / 2 ) - ( loader_image_height / 2 )) + "px";
loader_elem.innerHTML = loader_html;
loader_elem.style.top = top_coord;
loader_elem.style.left = left_coord;
loader_elem.style.display = "block";
},
hide : function () { setTimeout("document.getElementById('loader_container').style.display = 'none';", 750); }
}
};
})();
Проблема в том, что при попытке его выполнить браузер выводит ошибку:
SyntaxError: function statement requires a name
get_scrollTop : function () { return (document.documentElement && document.docum...
Посмотреть живьём это можно на jsfiddle
Ответ
Надо изменить
return
{
на
return {
JavaScript добавляет в конец строка автоматическим образом, так что код распарсится так:
return;
{ // блок кода
window_subroutines: // метка
{ // блок кода
get_scrollTop : // метка
function () { /* ... */ } // SyntaxError: декларация функции без имени
(Смотрите в спецификации о инструкциях с метками и автоматической подстановке точки с запятой)
Комментариев нет:
Отправить комментарий