首页 > 解决方案 > PhantomJS - 如何从 file1.js 调用 file2.js(通过将参数从 file1 传递到 file2)

问题描述

我正在使用 PhantomJS 并有一个名为的文件file1.js,其中包含以下代码:

var fs = require('fs');
system = require('system');
var inputfile=system.args[1];
var stream = fs.open(inputfile,'r');
var data = stream.read(); 
var config = JSON.parse(data); 
var user_input=config.input;
var output_format=config.output;
stream.close();

上面的代码读取一个 JSON 文件并获取存储在 JSON 文件中的user_inputoutput_format

我还有另一个名为 as 的文件file2.js,现在我想file2.js从内部调用这里file1.js并希望同时传递user_inputoutput_format作为参数。

这里的代码file2.js不需要添加。重要的是file1.js应该调用file2.js并将这两个参数传递给它。file2.js然后将对这些参数执行所需的操作。

我尝试了 injectJS 但它不起作用,因为它只适用于页面,例如page.injectJS. 此外,injectJS 只接受一个参数,即文件名,没有其他参数。因此,我无法实现我想要实现的目标。

请帮我。提前致谢。

标签: javascriptphantomjs

解决方案


试试这个流程。可能会帮助你

var page = require("webpage").create()
page.open(url, function () {
    page.includeJs(file1.js, function () {
        page.evaluate(function (params1, params2) {
            page.includeJs(file2.js, function () {
                page.evaluate(function (params3, params4) {
                    console.log(params3, param4)//this will print 10,20
                }, params1, params2)
            })
        }, 10, 20)
    })
})

推荐阅读