标签: onsen-ui2

在 React+Onsenui 应用程序上运行摩卡测试时出现“ReferenceError:元素未定义”

在尝试设置测试环境时,我遇到了以下问题。当我运行测试(使用mocha ./src/test/.setup.js ./src/test/**.test.js)时,出现Element is not defined错误:

app\node_modules\onsenui\js\onsenui.js:603
  var originalCreateShadowRoot = Element.prototype.createShadowRoot;
                                 ^

ReferenceError: Element is not defined
    at app\node_modules\onsenui\js\onsenui.js:603:34
    at app\node_modules\onsenui\js\onsenui.js:359:7
    at Array.forEach (native)
    at initializeModules (app\node_modules\onsenui\js\onsenui.js:358:13)
    at app\node_modules\onsenui\js\onsenui.js:908:5
    (...)
Run Code Online (Sandbox Code Playgroud)

这怎么可能,Element不是一个基本的DOM元素吗?

使用以下版本:

  • 酶@2.4.1
  • 摩卡@3.0.2
  • onsenui@2.0.0-rc.17
  • 反应@15.3.1
  • 反应-onsenui@0.7.5

使用以下 .setup.js 文件:

require('babel-register')({
    presets: ["react","airbnb","es2015"]
});

var jsdom = require('jsdom').jsdom;

var exposedProperties = ['window', 'navigator', 'document'];

global.document = jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
    if (typeof global[property] === 'undefined') {
        exposedProperties.push(property);
        global[property] = document.defaultView[property];
    }
});

global.navigator …
Run Code Online (Sandbox Code Playgroud)

mocha.js reactjs enzyme onsen-ui2

5
推荐指数
1
解决办法
1万
查看次数

OnsenUI:未捕获的 ReferenceError:未定义 setImmediate

Onsen UI 在动态渲染温泉的 js 和 css 时抛出错误。但是当我在静态 html 中使用它时它正在工作。错误:未捕获的引用错误:未定义 setImmediate

    internal.js:52 Uncaught ReferenceError: setImmediate is not defined
        at Object.internal$1.waitDOMContentLoaded (internal.js:52)
        at internal.js:103
        at onsElements (onsenui.js:6)
        at onsenui.js:7
Run Code Online (Sandbox Code Playgroud)

我的代码。,

jsResource = ['https://cdnjs.cloudflare.com/ajax/libs/onsen/2.10.4/js/onsenui.js'];

    async.mapSeries(jsResource, function (file, callback3) {
                        // console.log('Enter FILE =>',file)
                        if (file) {
                            var jsFile = iframedocument.createElement('script');
                            jsFile.setAttribute('type', 'text/javascript');
                            jsFile.setAttribute('src', file);
                            head.appendChild(jsFile);

                            if (jsFile.readyState) {  //IE
                                jsFile.onreadystatechange = function () {
                                    if (s.readyState == "loaded" ||
                                        s.readyState == "complete") {
                                        s.onreadystatechange = null;
                                        callback3(null, null);
                                    } else {
                                        callback3(null, null); …
Run Code Online (Sandbox Code Playgroud)

javascript ionic-framework onsen-ui onsen-ui2

3
推荐指数
1
解决办法
2690
查看次数