3

我是 PhantomJs 的新手。我使用的是 1.8.1 版本。我已经看过here来解决这个问题,因为我有类似的要求。

我正在做这样的事情:

page.onInitialized = function () {
    page.evaluate(function () {
        (function () {
            window.navigator.plugins = {
                'length': 1, 
                'Shockwave Flash': {
                    'description':'fakeflash'
                }
            };
        })();
    });
};

当我做 console.log (window.navigator.plugins['Shockwave Flash'].description)

我得到未定义的结果。

谁能告诉我做错了什么?

4

1 回答 1

8

替换整个navigator对象(不能只修改某些属性)。

var page = require('webpage').create();

page.onConsoleMessage = function (msg) {
    console.log(msg);
};

page.onInitialized = function () {
    page.evaluate(function () {
        window.navigator = {
            plugins: {
                length: 1,
                'Shockwave Flash': {
                    description: 'fakeflash'
                }
            }
        };
    });
};

page.content = '<html><body>Hello</body></html>';
page.evaluate(function () {
    console.log(window.navigator.plugins['Shockwave Flash'].description);
});

phantom.exit();
于 2013-01-29T16:45:06.930 回答