phantomjs作用域的问题
rt.在主文件引入模块a,可是在page.evaluate()方法中不能引入??
var page = require('webpage').create(); var a = require("./a"); var url="https://github.com/"; page.open(url, function(status) { page.includeJs("http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js",function(){ page.evaluate(function() {//page.evaluate之外的变量不能在这里引用吗?如果我想在这里引用外部定义的变量呢,求解 var tc =document.body.innerText; var href=window.location.href; var as = document.getElementsByTagName("a"); var suba=a.finda(href,as);//在这里引用这个方法 $.ajax({ type: "POST", url:"http://127.0.0.1:1337/ajax", dataType:"text", data:{"url":href,"data":tc,"suba":suba} }); }); }); });
//上面文件中引入的模块a代码 function finda(url,as){ var ha=new Array(); var len = as.size(); for(var i=0;i<len;i++){ var cura=as.eq(i).attr("href"); if(cura.indexOf("http")=="-1"){ ha.push(url+cura); }else{ ha.push(cura); } } return ha; } exports.finda = finda;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你引用的文档下面就说明了用法,要把参数传递到evaluate里面去,需要做的是