3

私は PhantomJs の初心者です。1.8.1 バージョンを使用しています。同様の要件があるため、これを解決するためにここを見てきました。

私はこのようなことをしています:

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 に答える