1

假设我<p>的 HTML 文档中有不同的元素。渲染后,根据应用的样式,其中一些字体可能比其他字体大。

如何<p>使用 PhantomJS 获取哪个字体大小大于其他字体大小的内容?这甚至可能吗?

4

1 回答 1

1

使用page.evaluate在网页上下文中评估 js 函数。要获取给定元素的字体大小,请使用Window.getComputedStyle

最后,这可能是这样的

var page = require('webpage').create();
var url = 'http://jquery.com/';//just an example

page.open(url, function(status) {
    var results = page.evaluate(function() {
        return [].map.call(window.document.querySelectorAll('p'), function(p) { 
        return {content:p.innerHTML, size:window.getComputedStyle(p)['fontSize']}
        }).sort(function(a, b) {return b.size.replace(/px/, '')-a.size.replace(/px/, '');});
    });
    if(results && results.length>0) {
         console.log(JSON.stringify(results[0]));
    }       
    phantom.exit();
});
于 2013-10-25T06:28:46.680 回答