【问题标题】:New JSdom API - errors新的 JSdom API - 错误
【发布时间】:2019-07-22 13:33:48
【问题描述】:

节点 v8.10.0

为什么新的 JSdom API 会抛出错误?

"*Error: Not implemented: window.scrollTo*"
"*Error: Uncaught [TypeError: Cannot read property 'origin' of undefined]*"
"*Error: Uncaught [TypeError: Cannot read property 'removeAttribute' of null]*"

等等

旧 API(工作正常); [jsdom v11.3.0]

var jsdom = require("jsdom/lib/old-api.js");
var url = 'https://www.wp.pl';

var requestData = request(url, function(err, resp, HTMLdata) {
    if (!err && resp.statusCode === 200) {
        console.log('Request success - we render jsdom page \n');
        jsdom.env({
            html: HTMLdata,
            features: {
                FetchExternalResources : ['script'],
                ProcessExternalResources : ['script'],
                SkipExternalResources: false
            },
            done: function (err, window) {
                if (err) {console.log('ERR: ' + err);}
                var document = window.document;
                window.close();
            }
        });
    }
});

新 API:[jsdom v15.1.1]

const jsdom = require('jsdom');
const {JSDOM} = jsdom;

var url = 'https://www.wp.pl';
var requestData = request(url, function(err, resp, HTMLdata)
{
    if (!err && resp.statusCode === 200){
        console.log('Request success - we render jsdom page \n');
        var JSdom1 = new JSDOM(HTMLdata,
        {
            url : url,
            referrer : url,
            runScripts : 'dangerously',
            resources : 'usable'
        });
        if (JSdom1.onload){}
    }
});

例如因为新的 API:

"*%cWarning! background:red;color:white;font-weight:bold; WPJSlib is embedded incorrectly, probably 'src' is incorrectly extended. Contact ATFD for further information.*"

我做错了什么?知道如何解决这个问题吗?

【问题讨论】:

    标签: node.js jsdom


    【解决方案1】:

    jsdom 的新 API 会自动为您创建一个virtual console,并通过管道传送到真实(节点的)控制台。以前版本的 jsdom 用来隐藏这些错误。

    您可以简单地在选项中提供一个空的 VirtualConsole 实例,这将再次隐藏这些错误:

    const virtualConsole = new jsdom.VirtualConsole();
    const dom = new JSDOM(``, { virtualConsole });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-21
      • 2012-02-09
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2012-06-05
      相关资源
      最近更新 更多