首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GetComputedStyle节点不工作-未定义

GetComputedStyle节点不工作-未定义
EN

Stack Overflow用户
提问于 2021-03-05 08:20:10
回答 1查看 466关注 0票数 0

我正在写一个网络抓取脚本,我想使用getComputedStyle(),但是它在节点上不起作用。我收到错误,说是getComputedStyle is not defined

如果我尝试global.getComputedStyle,它会告诉我global.getComputedStyle不是一个函数

显然,节点上不存在window,所以我不能使用它。

我需要使用什么?

代码语言:javascript
复制
function sortElementsByFontSize(elements: any[]): any[]{
    return elements.sort((a, b) => {
        let aFontSize = parseInt(global.getComputedStyle(a)['fontSize']);
        let bFontSize = parseInt(global.getComputedStyle(b)['fontSize']);
        console.log("Comparing: " + aFontSize + " - " + bFontSize);
        if(aFontSize === bFontSize){
            return 0;
        } else {
            return aFontSize > bFontSize ? 1 : -1
        }
    });
}
EN

回答 1

Stack Overflow用户

发布于 2021-03-05 09:07:55

getComputedStyle()是存在于浏览器中的东西,而不是nodejs中的东西。

如果您不清楚这一点,那么nodejs是一个Javascript环境,它支持Javascript语言的最新标准,但它有自己的运行时库,支持联网和文件I/O。类似地,浏览器支持Javascript语言的最新标准,但它有自己的运行时库,支持getComputedStyle()等。

Nodejs本身不做任何HTML渲染,不能解析或理解CSS,等等……

所以,要使用像getComputedStyle()这样的函数,你必须要么在浏览器环境中运行你的Javascript,要么使用nodejs中的一个库,让你可以访问一个实际的浏览器引擎,比如Puppeteer,它使用Chromium浏览器引擎来创建一个浏览器环境,在这个环境中你可以运行一些Javascript。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66484956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档