javascript - 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_input
和output_format
。
我还有另一个名为 as 的文件file2.js
,现在我想file2.js
从内部调用这里file1.js
并希望同时传递user_input
和output_format
作为参数。
这里的代码file2.js
不需要添加。重要的是file1.js
应该调用file2.js
并将这两个参数传递给它。file2.js
然后将对这些参数执行所需的操作。
我尝试了 injectJS 但它不起作用,因为它只适用于页面,例如page.injectJS
. 此外,injectJS 只接受一个参数,即文件名,没有其他参数。因此,我无法实现我想要实现的目标。
请帮我。提前致谢。
解决方案
试试这个流程。可能会帮助你
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)
})
})
推荐阅读
- load-balancing - 带有 webclient 的 Ribbon 负载均衡器与 REST 模板一不同(未正确平衡)
- vue.js - 我应该在 vue 中的每个组件上使用代码拆分吗?
- csv - 从 csv 读取并在 x 上绘制日期
- mysql - Hikari CP SSL 异常在接收对等方的 close_notify 之前关闭入站
- firebase - 如何使用 Flutter 从 Firestore 中的集合中获取特定文档
- javascript - React Styled 组件:如何根据 props 添加 css 样式?
- python - 如何从“onclick”属性值的括号中提取数据?
- android - 如何在 LocationListener 中创建通知
- php - 使用 MYSQLI while 循环运行带有 IF/ELSE 的 foreach 循环
- c++ - 在多线程环境中为类的每个实例赋予唯一标识符