Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在从另一个函数调用的函数中设置变量_Javascript_Node.js_Phantomjs_Screen Scraping - Fatal编程技术网

Javascript 无法在从另一个函数调用的函数中设置变量

Javascript 无法在从另一个函数调用的函数中设置变量,javascript,node.js,phantomjs,screen-scraping,Javascript,Node.js,Phantomjs,Screen Scraping,我目前正在运行一个NodeJS文件,我收到一篇类似这样的帖子 app.post('/', function (req, res) { var firstLine = req.body.firstLine; var secondLine = req.body.secondLine; var previewID = req.body.previewId; takeWebshot(firstLine) return res.end('<h1>Hell

我目前正在运行一个NodeJS文件,我收到一篇类似这样的帖子

app.post('/', function (req, res) {
    var firstLine = req.body.firstLine;
    var secondLine = req.body.secondLine;
    var previewID = req.body.previewId;
    takeWebshot(firstLine)
    return res.end('<h1>Hello, Secure City World!</h1>');
});
这是我在这方面的问题:

document.getElementById("user_input").value=fLine;
弗林不再读书了。我试着把弗林传给函数,就像这样fn:functionfLine。弗林现在等于成功。就我对JS的有限了解而言,函数fn:function似乎是主节点模块webshot中的承诺回调。目标是我需要

document.getElementById("user_input").value=fLine; to equal firstLine that is being sent by the other function.

编辑:webshot正在调用幻影js来打开一个无头url。我试图传递变量,以便它在调用它进行屏幕截图时可以填写表单。这就是为什么它有文档。

您不能将fLine传递给fn:functionfLine,因为它是onLoadFinished的回调函数,内部无法访问变量的范围,您可以尝试fn:=>{ document.getElementByIduser\u input.value=fLine; }这可能与带“允许访问使用变量外部”函数的胖箭头函数相同。

webshot的文档中提到,脚本将在传递给Phantom之前序列化

请注意,脚本将被序列化,然后作为文本传递给Phantom,因此所有变量范围信息都将丢失。但是,调用方的变量可以按如下方式传递到脚本中:

碳纤维

因此,你可能应该按照他们的指示,做如下事情:

onLoadFinished: {
  fn: function() {
    document.getElementById("user_input").value=this.fLineSnapshot;
    document.getElementById("second_user_input").value="AMAZON USERNAME";
    document.getElementById("preview_btn").click();
  },
  context: {
    fLineSnapshot: fLine
  }
},

文档在nodejs应用程序中来自何处?webshot正在调用幻影js来打开一个url headless。我试图传递变量,以便它在调用它进行屏幕截图时可以填写表单。我将把它添加到问题中@ThomasAm不确定这里onLoadFinished方法的用途,如果你能详细说明,我建议一个更好的解决方案。是的,onLoadFinished在webshot使用的选项中。Webshot是一个节点模块,它使用phantom js拍摄网页的屏幕截图。所以webshot使用选项来获取phantom js将使用的任何细节。在示例中,document.getElementByID由值填充@Arulmozhi ManikandanI现在明白了,您可以尝试类似于inside takeWebshot将本地存储中的存储fLine设置为localStorage。setItem'fLine',fLine和inside onLoadFinished从本地存储localStorage设置元素值。GetItem'fLine'。我知道现在这就像一个补丁,这会起作用,但我明天或以后会用实际设置运行一些测试,并会找到一个正确而干净的解决方案。@FabricioG我在查看了webshotAh man的文档后更新了我的答案!真不敢相信我错过了!谢谢大家!@海关指挥官
onLoadFinished: {
  fn: function() {
    document.getElementById("user_input").value=this.fLineSnapshot;
    document.getElementById("second_user_input").value="AMAZON USERNAME";
    document.getElementById("preview_btn").click();
  },
  context: {
    fLineSnapshot: fLine
  }
},