2013-12-03 54 views
0

爲什麼下面的代碼返回錯誤:page.injectJs不能與節點幻影工作

phantom stdout: ReferenceError: Can't find variable: $ 

我的jQuery注入到頁面,並試圖找到一個選擇:

已更新下面的代碼(見註釋)

portscanner.findAPortNotInUse(startPort, 60000, 'localhost', function(err, freeport) { 
    if(err) { 
     //console.log(err); 
    } 
    console.log(freeport); 
    phantom.create({'port': freeport}, function(ph){ 

     return ph.createPage(function(page) { 
      return page.open("http://www.targetsite.com/showpost.php?p="+posts[index].post_id, function(status) { 
       console.log("opened post? ", status); 

       var post_id = posts[index].post_id; 
       page.includeJs('http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',function(err, post_id){ 
        console.log(err); 
        return page.evaluate(function(post_id){ 
         return $('#post_message_'+post_id); //undefined 
        },function(result){ 
         console.log(result); 
         return ph.exit(); 
        }); 

       }); 


      }); 
     }); 
    }); 
}); 
+0

您是否嘗試過使用'jQuery',而不是'$'? – dcodesmith

+0

@dcodesmith是的,同樣的錯誤。 – codecowboy

+1

檢查注射時是否有錯誤。 'page.injectJs('http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js',function(err){console.log(err)}' – dcodesmith

回答

1

試試這個

return page.evaluate(function(post_id){ 
    return $('#post_message_'+post_id); //undefined 
},function(result){ 
    console.log(result); 
    return ph.exit(); 
}, post_id); 

順便說一句,哪個節點模塊正在使用這個?

phantomjs-node evaluate wiki

+0

https://github.com/sgentle/phantomjs-node – codecowboy

+0

此外還導致未定義和附加錯誤:幻像標準輸出:TypeError:'19350369'不是函數(評估'cb(page.evaluate.apply(page,[fn] .concat(args)))') – codecowboy

+0

@codecowboy試試。 – dcodesmith