Войти с помощью github

Есть примерно следующая структура вложенных блоков:

{
    block : 'box',
    mods : {
        root : true,
        id : 'layoutBox',
    },
    content : {
        block : 'box',
        mods : {
            id : 'appBox',
        },
        // Имеем некоторую вложенность блоков `box`: layoutBox->appBox->ReportLayout->Report->ReportDisplay; Т.е.:
        // ...
        content : {
            block : 'ReportDisplay',
            mix : {
                block : 'box',
                mods : {
                    id : 'ReportDisplay',
                },
            },
            content : {
                // Some content...
            },
        },
    },
}

При удалении блока ReportDisplay (при помощи BEMDOM.destruct(ReportDisplay.domElem)) по цепочке parentNode (в jquery) до верхнего уровня (layoutBox) всплывает событие на delMod('js'), в результате чего блок отписывается от событий, зарегистрированных на window (ранее подписываемся так: this._domEvents(BEMDOM.win).on('resize',...)).

Стек выглядит примерно так:

    (i-bem-dom__events.js:155) this._storage[e] = null; // e='resize' -- Это собственно удаление подписанного события в _unbindByEvent.
    // ...
    (i-bem-dom__events.js:139) objects.each(this._storage, this._unbindByEvent, this); // this._storage={resize:{uniq161:{...}}}
    (i-bem-dom__events.js:253) params.bindToArbitraryDomElem && ctxStorage[storageKey] &&
                            ctxStorage[storageKey].un();
    (i-bem-dom__events_type_bem.js:85) fn.call(fnCtx || instance, originalEvent, data); // fnCtx=null, instance=layoutBox, originalEvent={bemTarget:ctx,data:undefined,target:ctx,type:'modchange'_isDefaultPrevented:false_isPropagationStopped:false}, data={modName:'js', modVal:'',oldModVal:'inited'}
    (jquery:5205) ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||     //  handleObj.origType='__bem__box_js_'
                        handleObj.handler ).apply( matched.elem, args ); //  matched.elem=layoutBox.domElem[0], args=[jQuery.Event{type:'__bem__box_js_'},{modName:'js', modVal:'',oldModVal:'inited'},{fns:{uniq151:true},propagationStoppedDomNode:null},{bemTarget:ctx,data:undefined,target:ctx,type:'modchange'_isDefaultPrevented:false_isPropagationStopped:false}]
    (jquery.js:5014) jQuery.event.dispatch.apply( elem, arguments ); // elem=layoutBox.domElem[0], ...
    (jquery:8201) handle.apply( cur, data ); // cur=layoutBox.domElem[0], data=[jQuery.Event{type:'__bem__box_js_'},{modName:'js', modVal:'',oldModVal:'inited'},{fns:{uniq151:true},propagationStoppedDomNode:null},{bemTarget:ctx,data:undefined,target:ctx,type:'modchange'_isDefaultPrevented:false_isPropagationStopped:false}]
    (jquery.js:8262) jQuery.event.trigger(type, data, this); // type='__bem__box_js_', data=[{modName:'js', modVal:'',oldModVal:'inited'},{fns:{uniq151:true},propagationStoppedDomNode:null},{bemTarget:ctx,data:undefined,target:ctx,type:'modchange'_isDefaultPrevented:false_isPropagationStopped:false}], this=ctx
    (jquery.js:8269) ctx.domElem.trigger(event, [data, { fns : {}, propagationStoppedDomNode : null }, originalEvent]); // event='__bem__box_js_', data={modName:'js',modVal:'',oldModVal:'inited'}, originalEvent:{bemTarget:ctx,data:undefined,target:ctx,type:'modchange'_isDefaultPrevented:false_isPropagationStopped:false}
    // ...
    (i-bem-dom.js:676) bemEvents.emit(this, e, data); // e={modName:'js',modVal:''}, data={modName:'js', modVal:'',oldModVal:'inited'}
    (i-bem-dom.js:733) this._emit({ modName : 'js', modVal : '' }, eventData); // eventData={modName:'js',modVal:'',oldModVal:'inited'}
    (i-bem.vanilla.js:324) this._afterSetMod('js', '', 'inited');
    (i-bem.vanilla.js:382) this.setMod('js', '');
    (i-bem.vanilla.js:247) this.delMod('js');
    (i-bem-dom.js:244) entity._delInitedMod();
    (i-bem-dom.js:1004) removeDomNodeFromEntity(entity, domNode);
    // ...
    (i-bem-dom.js:1029) this._destruct(ctx, excludeSelf, true);
    BEMDOM.destruct(ReportDisplay.domElem);

Полностью слепок вершины стека из DevTools, от destruct до _unbindByEvent).

_unbindByEvent (i-bem-dom__events.js:155)
each (objects.vanilla.js:56)
un (i-bem-dom__events.js:139)
(anonymous) (i-bem-dom__events.js:254)
inherit._createEventManager (i-bem-dom__events_type_bem.js:85)
dispatch (jquery.js:5206)
jQuery.event.add.elemData.handle (jquery.js:5014)
trigger (jquery.js:8201)
(anonymous) (jquery.js:8269)
each (jquery.js:362)
each (jquery.js:157)
trigger (jquery.js:8268)
emit (i-bem-dom__events_type_bem.js:119)
_emit (i-bem-dom.js:676)
_afterSetMod (i-bem-dom.js:733)
setMod (i-bem.vanilla.js:324)
delMod (i-bem.vanilla.js:382)
_delInitedMod (i-bem.vanilla.js:247)
removeDomNodeFromEntity (i-bem-dom.js:244)
(anonymous) (i-bem-dom.js:1004)
each (objects.vanilla.js:56)
(anonymous) (i-bem-dom.js:1000)
each (jquery.js:362)
each (jquery.js:157)
_destruct (i-bem-dom.js:993)
destruct (i-bem-dom.js:1029)

Т.е., раскрутить до конца я раскрутил, но вот дальше собственных мозгов разбраться, почему так происходит, как-то уже не хватает, увы. %((

Пока обхожусь принудительной переинициализацией событий на верхнем уровне после изменения содержимого.

Хелп? Что это может быть?

Версии библиотек:

  • bem-core@4.2.1
  • jquery@3.2.1

Обнаружил следующую проблему: gulp игнорирует bemhtml-ы элементов, если у блока стоит миксом другой блок

Пример тут: https://github.com/rteamx/project-stub/commit/77c4e6bb74a5fc3893b83abc7f5e6c0f90bb1def

  • Запускаем gulp build и в готовый html не приходят теги для элемнтов my-block__title и my-block__subtitle (первый должен быть h1, второй - h2).
  • Убираем в desktop.bundles\page\page.bemjson.js микс mix: { block: 'wrapper' }, запускаем сборку gulp build, и вауля - теги пришли.
  • ENB все по колено. И если собирать галпом после сборки ENB, то выше описанной проблемы нет, видимо причина в том, что после ENB появляется файл desktop.bundles\page\page.bemdecl.js или в чем-то другом?

Как можно решить эту проблему с галпом?

Приветствую всех на форуме!

Это мой первый пост, в течении нескольких дней хотел обратиться с возникающими вопросами, но не получалось. В двух браузерах не работает пост и сортировка форума.

https://youtu.be/rO1k3j6PN8w

На видео записал экран + панель разработчика. OS Win10 Проблема на клиенте или сервере? У кого ни будь такое происходит?

EDGE, Chrome - отказываются добавлять пост. Chrome - постит только после того, как из панели разработчика запустил эмуляцию мобильника. Данный пост смог написать только с IE11. Тревожно на свой проект тянуть - т.к. с JS мало знаком, и самостоятельно исправить не смогу.

Ребята, дайте обратную связь...

При установке зависимостей npm install, выдаёт подобного рода ошибку:

npm WARN deprecated native-or-bluebird@1.2.0: 'native-or-bluebird' is deprecated. Please use 'any-promise' instead. npm WARN optional dep failed, continuing fsevents@1.0.14 npm WARN deprecated minimatch@3.0.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN engine puml-link@0.0.1: wanted: {"node":"0.10"} (current: {"node":"4.6.0","npm":"2.15.9"})

jsonpath@0.2.7 postinstall C:\Git\bem\node_modules\gulp-bem-bundle-builder\node_modules\gulp-bem-src\node_modules\bem-config\node_modules\jsonpath node lib/aesprim.js > generated/aesprim-browser.js

npm WARN deprecated minimatch@0.2.14: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue npm WARN engine puml-link@0.0.1: wanted: {"node":"0.10"} (current: {"node":"4.6.0","npm":"2.15.9"})

bem-project-stub@1.7.0 postinstall C:\Git\bem npm run deps

bem-project-stub@1.7.0 deps C:\Git\bem bower i --allow-root

bower bem-components#3.0.1 cached https://github.com/bem/bem-components.git#3.0.1 bower bem-components#3.0.1 validate 3.0.1 against https://github.com/bem/bem-components.git#3.0.1 bower bem-components#3.0.1 ECMDERR Failed to execute "git ls-remote --tags --heads https://github.com/bem/bem-components.git", exit code of #128 fatal: unable to access 'https://github.com/bem/bem-components.git/': Failed to connect to github.com port 443: Timed out

Additional error details: fatal: unable to access 'https://github.com/bem/bem-components.git/': Failed to connect to github.com port 443: Timed out

npm ERR! Windows_NT 6.3.9600 npm ERR! argv "C:\nodejs\node.exe" "C:\nodejs\node_modules\npm\bin\npm-cli.js" "run" "deps" npm ERR! node v4.6.0 npm ERR! npm v2.15.9 npm ERR! code ELIFECYCLE npm ERR! bem-project-stub@1.7.0 deps: bower i --allow-root npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the bem-project-stub@1.7.0 deps script 'bower i --allow-root'. npm ERR! This is most likely a problem with the bem-project-stub package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! bower i --allow-root npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs bem-project-stub npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm ERR! npm owner ls bem-project-stub npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request: npm ERR! C:\Git\bem\npm-debug.log

npm ERR! Windows_NT 6.3.9600 npm ERR! argv "C:\nodejs\node.exe" "C:\nodejs\node_modules\npm\bin\npm-cli.js" "install" npm ERR! node v4.6.0 npm ERR! npm v2.15.9 npm ERR! code ELIFECYCLE npm ERR! bem-project-stub@1.7.0 postinstall: npm run deps npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the bem-project-stub@1.7.0 postinstall script 'npm run deps'. npm ERR! This is most likely a problem with the bem-project-stub package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! npm run deps npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs bem-project-stub npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm ERR! npm owner ls bem-project-stub npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request: npm ERR! C:\Git\bem\npm-debug.log

Странное поведение bemhtml. Шаблон:

block('comment-editor').elem('clear').replace()(
    { block : 'input', elem : 'clear', mix : { block : 'comment-editor', elem : 'clear' } }
);

bemhtml output:

<span class="input__clear"></span>

bh.js:

module.exports = function (bh) {
    bh.match('comment-editor__clear', function(ctx){
        return { block : 'input', elem : 'clear', mix : { block : 'comment-editor', elem : 'clear' } };
    });
}

bh.js output:

<span class="input__clear comment-editor__clear"></span>

Как видно, примиксованый блок не появляется. При этом замечена закономерность: Если в миксе или в возвращаемом блоке заменить { elem : 'clear' } на любой другой - микс начинает появляться в коде. Ошибка воспроизводится только когда в блоке и миксе есть одинаковые элементы.

В процессе установки получил вот что http://cl.ly/2Y0Z022J151M Хотя до этого, стянут из GitHub основной пак БЕМ и все было хорошо. Подскажите пожалуйста, что я упустил.

Поиграться можно тут http://bem.github.io/bem-xjst/

Пара типов данных

({
    block: 'block1'
});

или

({
    block: 'block1',
    mods: { a: 'b' }
});

Далее буду приводить по паре шаблонов где можно отсмотреть разное поведение при разных условиях и при этом ожидание результата не оправдывается

Вариант 1 (как бы правильный)

block('block1')(
    def()(function() {
        this.mods.bla = 'bla';
        this.ctx.content = '1';
        return applyNext();
    })
);

block('block1').mod('bla', 'bla')(
    def()(function() {
        this.mods.ololo = true;
        this.ctx.content = 'bla';
        return applyNext();
    })
);

вариант 2

block('block1')(
    def()(function() {
        this.mods = { bla: 'bla' };
        this.ctx.content = '1';
        return applyNext();
    })
);

block('block1').mod('bla', 'bla')(
    def()(function() {
        this.mods.ololo = true;
        this.ctx.content = 'bla';
        return applyNext();
    })
);

Вариант 3

block('block1')(
    def()(function() {
        this.ctx.mods = { bla: 'bla' };
        this.ctx.content = '1';
        return applyNext();
    })
);

block('block1').mod('bla', 'bla')(
    def()(function() {
        this.mods.ololo = true;
        this.ctx.content = 'bla';
        return applyNext();
    })
);

Вариант 4! Причем работает как нужно есть есть mods в bemjson

block('block1')(
    def()(function() {
        this.ctx.mods.bla = 'bla';
        this.ctx.content = '1';
        return applyNext();
    })
);

block('block1').mod('bla', 'bla')(
    def()(function() {
        this.mods.ololo = true;
        this.ctx.content = 'bla';
        return applyNext();
    })
);

Еще их вариации

Что интересно даже

block('block1')(
    def()(function() {
        this.mods = this.extend(this.mods, { bla: 'bla' });
        this.ctx.content = '1';
        return applyNext();
    })
);

block('block1').mod('bla', 'bla')(
    def()(function() {
        this.mods.ololo = true;
        this.ctx.content = 'bla';
        return applyNext();
    })
);

Не работает как нужно. Ожидаю что как бы я не записал модификаторы (через создание нового объекта или через ссылку. через this.mods или через this.ctx.mods) то отработают шаблоны по ним и классы будут в результате шаблонизации.

Вероятно дело в том что когда в mods пишешь новый объект ссылки теряются по этому то шаблон BEMHTML не отрабатывает то класс не проставляется в результате шаблонизации. Не доконца ясна в таком случае ситуация с this.mods и this.ctx.mods

Как это объясняется вами? И что делать? Что будет делаться если будет?

Привет! Обновил enb-bem-techs@1.0.4 до версии 2.0.0 и начались проблемы со сборкой bemhml и html. Сама сборка проходит без ошибок, но по окончании сборки я имею пустой html файл и странно собранный bemhtml. Все шаблоны в нем продублированы по 2 раза. Циклические зависимости mustDeps отсутствуют в deps файлах, т.к я использую ключ strict: true

Почему html файл пустой и почему шаблоны продублированы 2 раза?

Пример сборки бандлов:

    config.nodes(bemPages, function(nodeConfig) {
        var path = nodeConfig.getPath();
        nodeConfig.addTechs([
            [ require('enb-bem-techs/techs/levels'), { levels: getLevels(config, path) } ],
            [ techs.fileProvider, { target: '?.bemjson.js' } ],
            [ enbBemTechs.bemjsonToBemdecl ],
            [ enbBemTechs.depsOld, { strict: true } ],
            [ enbBemTechs.files ],
            //CSS
            [ techs.stylus, { target: '?.css', autoprefixer: { browsers: [ "> 2%", "last 2 versions", "Firefox ESR", "Opera 12.1", "Android >= 4", "iOS >= 5" ] } } ],
            //BEMHTML
            [ techs.bemhtml, { sourceSuffixes: [ 'bemhtml', 'bemhtml.js' ] } ],
            //HTML
            [ techs.htmlFromJSON ],
            [ techs.htmlBeautify ],
            //client JS
            [ techs.browserJs ],
            [ techs.fileMerge, { target: '?.pre.js', sources: [ '?.bemhtml.js', '?.browser.js' ] } ],
            [ techs.prependYm, { source: '?.pre.js' }]
        ]);

        nodeConfig.mode('production', function(nodeConfig){
            //CSS
            nodeConfig.addTechs([
                [ techs.stylus, { target: '_?.css', autoprefixer: { browsers: [ "> 2%", "last 2 versions", "Firefox ESR", "Opera 12.1", "Android >= 4", "iOS >= 5" ] }, compress: true } ]
            ]);
            nodeConfig.addTechs([
                //BORSCHIK
                [ techs.borschik,  { sourceTarget: '?.js', destTarget: '_?.js', freeze: true, minify: true} ]
            ]);
            nodeConfig.addTargets([ '_?.css', '_?.js' ]);
        })

        nodeConfig.addTargets([ '?.js', '?.css', '?.html', '?.browser.js', '?.beauty.html' ]);
    });

Всем привет!

Не подскажите, почему стили у блока могут не доопределяться? Использую свою библиотеку, стили из библиотеки подтягиваются, а из проекта нет. Уровни в make.js дописал. Использую enb. При этом с bem-tools отрабатывает нормально. Проект и библиотека на основе project-stub. На чистом project-stub такая же ситуация.

Всем привет!

Создаю свою библиотеку, один из блоков без BEMHTML (для него описал только стили). При подключении библиотеки выдается ошибка ENOENT, что нет BEMHTML. Так и должно быть или это глюк? Если создать пустой BEMHTML, то все работает. Собираю проект с помощью enb. Кеш скидывал.

https://ru.bem.info/technology/bemtree/v2/bemtree/#Решение-16

Думаю должно быть: return applyCtx({ block: 'b-wrapper', content: ctx })

https://yadi.sk/i/wTtm5vmgfpNkW

это я что-то неправильно сделал или bem/project-stub не поддерживает IE8?

Я так понял, что MSIE 8 еще поддерживается в bem-core. Пустая страница. из блока page и 1 обычного блока без доп.технологий падает в IE Собранный js можно посмотреть в gist

bem-components 2.1.0 bem-core 2.6

upd: Самое главное не написал. Ошибка: Объект не поддерживает это свойство или метод строка 4589 символ 5

    name !== 'i-bem__dom_init' && arguments.length > 2 && ~deps.indexOf('i-bem__dom') &&
        modules.define('i-bem__dom_init', [name], function(provide, _, prev) {
            provide(prev);
        });
};

Кажется, в 2.1.0 поломалось управление с клавиатуры (вроде перехода между элементами в попапе стрелками и выбора пробелом).

Пример:

https://ru.bem.info/libs/bem-core/v2.6.0/

This README is also available in English.

В ссылке пропал поддомен en.

https://ru.bem.info/tutorials/quick-start-static/#11-Описание-страницы-в-bemjson-файле

'3. Чтобы создать поле ввода и кнопку, возьмите готовые реализации блоков input и button из библиотеки bem-components и добавьте их в элемент greeting.

Возможно имелось ввиду добавить input и button из библиотеки bem-components в блок hello?! Потому что по структуре явно видно, что мы добавляем эти блоки туда, и они являются элементами блока hello находясь на одном уровне с input и button. Так ли это?!)) Либо я чего-то не понял. Спасибо))

После нажатия кнопки "Добавить" появился alert с сообщением "Не удалось добавить пост", после нажатия на ОК содержимое формы было очищено. Я очень-очень расстроен, что форум так поступил с моим любовно составленным текстом сообщения для форума.

Сама ошибка, похоже, вызвана протухшей авторизацией. Мне пришлось обновить страницу и авторизоваться повторно, что бы я смог написать это сообщение. Но я уже был готов к подлости и скопировал текст сообщения в буфер перед отправкой.

Привет. Тут что то у меня не загрузились картинки http://awesomescreenshot.com/0294ij0mdd Версия браузера chrome Версия 42.0.2311.11 dev (64-bit) OS Lubuntu 14.10

https://gist.github.com/ec7034b7a409c826e989 Объявил зависимость shouldDeps модификатора от другого булевого модификатора.

({
  shouldDeps:[
    { mods: { visible: true}}
  ]
})

В итоге в собранный deps.js булевый модификатор попадает дважды. До исходного модификатора:

    {
        "block": "drawer",
        "mod": "visible"
    }

После исходного модификатора:

    {
        "block": "drawer",
        "mod": "visible",
        "val": true
    }

При этом появление модификатора visible до исходного является нежелательным и неожиданным. Сборщик ENB настроенный generator-bem-stub

Получаю следующую картину: после полной загрузки страницы и окончания инициализации js созданный динамически select не работает вообще. В обоих случаях bemjson один и тот же. В динамически созданном select'е в button'е отсутствует текстовый элемент, видимо, из-за этого весь блок select превращается в тыкву нерабочий компонент. Может быть, я что-то упустила, но никак не могу понять, что именно.

Код (выкачивала project-stub, изменения внесены минимальные): https://github.com/kvmamich/bem-dynamicselect Скриншот: https://raw.githubusercontent.com/kvmamich/bem-dynamicselect/master/screenshot.png

При сборке бандла выдает такую ошибку

Error: Only literal or function is allowed in template's body at 856:30 block('block1').content()({

at Compiler.assert (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:1 80:9)

at Compiler.transformTemplates (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:648:8)

at Array.map (native)

at Compiler.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\compiler\base.js:201:41)

at Object.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\node_modules\xjst\lib\xjst\api.js:16:40)

at Compiler.translate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\compiler.js:121:35)

at Compiler.generate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\compiler.js:707:14)

at Object.generate (путь проекта\libs\bem-core\node_modules\bem-xjst\lib\bemhtml\api.js:16:40)

at exports.techMixin.getCompiledResult (путь проекта\libs\bem-core.bem\techs\bemhtml.js:46:24)

at _fulfilled (путь проекта\node_modules\bem\node_modules\q\q.js:798:54)

Файл block1.bemtree Содержание

block('block1').content()({ elem: 'elem1' });

Как я понял теперь параметром может быть функция или строка. Но почему? Раньше у меня был bem-core v2.2.1 и там можно было вставлять и объект.

http://ru.bem.info/forum/issues/105/ вопрос задан 20 го ответ получен 3 го

Делаю комментарии к текстовым блокам как на медиуме Использовал блок dropdown в котором popup как то так

{
    block : 'dropdown',
    mods : { switcher : 'link' },
    switcher : {
        block : 'comments-counter',
        mix : { block : 'link', mods : { pseudo : true }},
        comments : 'ololo'
    },
    popup : {
        block : 'popup',
        mods : { theme : 'comments' },
        directions : ['right-top'],
        mainOffset : 17,
        secondaryOffset : -15,
        viewportOffset : 20,
        content : 'комментарии'
    }
}

Мне нужно двинуть body в лево при нажатии на переключатель. Сдвиг делается через css добавлением к body класса. Открывается popup, все вроде бы хорошо, но после анимации сдвига и скрола мышкой popup почему то пересчитывает свою позицию не правильно.

Вот видео баги https://yadi.sk/i/RXsm_X0ycpgfn

И видео если не двигать body https://yadi.sk/i/0-hxIvVtcpqKh

В какую строну смотреть? Помогите.

Очень не удобно искать теги без сортировки, тем более, что редактирование меняет ширину - и все теги фактически перемешиваются.

В статье http://ru.bem.info/tutorials/start-with-project-stub/ используется project-stub из ветки master и там совсем странный результат получается.

Здравствуйте всем! При прохождение руководства "Создаем свой проект на БЭМ" я столкнулся с проблемой. Я шел по этому руководству, ничего не пропускал и в разделе "BEMHTML-шаблоны" в файл goods.bemhtml я написал/вставил нужный код, а затем решил посмотреть как выглядит index.html и заместо ожидаемого содержимого увидел такую ошибку: http://firepic.org/images/2014-09/14/m707f9za5aj0.png Полез в доки, там черным по белому написано также. Если убрать this.ctx.url и написать, к примеру, какую-нибудь строку типа "test", то все в порядке и страничка index.html отображается нормально.