【问题标题】:phantomjs: how to run script with object.assign function?phantomjs:如何使用 object.assign 函数运行脚本?
【发布时间】:2017-03-21 17:42:30
【问题描述】:

我尝试为包含带有 Object.assign 函数的 js 的网站运行 phantomjs 脚本并得到一个错误:

TypeError:: undefined is not a function (evaluating 'Object.assign').

据我了解,phantomjs 不使用 ES-2015。所以我需要使用像this 这样的polyfill。我试图让它与injectJs、includeJs 甚至要求绝对url 一起工作,但它仍然不起作用。

如何导入这个js并运行脚本?

【问题讨论】:

  • 您无法在浏览器中运行 phantomjs。这不是客户端库。
  • 你可以使用MDN's polyfill,复制粘贴代码即可。

标签: javascript phantomjs


【解决方案1】:

问题可能是在子框架中运行 Object.assign 的网页。如果是这样,您必须在该框架中使用 polyfill。您可以使用以下 PhantomJS 表达式在页面上打印框架名称:

console.log('Current frames: ' + JSON.stringify(page.childFramesName()));

如果是这样,您可以在每一帧中注入 polyfill:

page.injectJs('polyfills.js');

page.childFramesName().forEach(function(childFrameName) {
    page.switchToFrame(childFrameName);

    page.injectJs('polyfills.js');

    page.switchToMainFrame();
});

【讨论】:

    猜你喜欢
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2016-03-28
    相关资源
    最近更新 更多