2013-03-08 27 views
11

मैं यहां कई घंटे के निष्पक्ष खोज के बाद पोस्ट करता हूं। PhantomJS मुझे नीचे दिए गए कोड में एक चर का उपयोग करने की अनुमति नहीं देता है, मेरी स्क्रिप्ट चलाने पर त्रुटि संदेश के साथ "चर नहीं मिल सकता"।चर नहीं ढूंढ सकता - PhantomJS

क्या आपको कोई समस्या है कि मेरी समस्या कहां हो सकती है?

page.open(myurl, function (status) { 

    if (status == 'success') { 

     page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js", function() { 

      elem = page.evaluate(function() { 

       /* Select one element with jQuery */ 
       myElem = $('body'); 
       return myElem; 

      }) 

      var elemHtml = page.evaluate(function() { return $(elem).html(); }); 
      console.log(elemHtml); 

     }) 

     phantom.exit();  

    } 

}) 

धन्यवाद =)

+0

'myElem' कहां परिभाषित किया गया है? –

+0

मैंने अपना कोड अपडेट करने के लिए अपडेट किया है जहां मेराइलेम परिभाषित है :) – Antoine

उत्तर

19

Quick Start ट्यूटोरियल में जानकारी का एक महत्वपूर्ण टुकड़ा (अपने कोड मूल्यांकन खंड में) नहीं है:

संदर्भ में जावास्क्रिप्ट या CoffeeScript कोड का मूल्यांकन करने के वेब पेज का, मूल्यांकन() फ़ंक्शन का उपयोग करें। निष्पादन "सैंडबॉक्स" है, कोड के किसी भी जावास्क्रिप्ट ऑब्जेक्ट्स और चर के अपने पृष्ठ संदर्भ के बाहर चर का उपयोग करने का कोई तरीका नहीं है। एक ऑब्जेक्ट मूल्यांकन() से वापस किया जा सकता है, हालांकि यह सरल वस्तुओं तक ही सीमित है और इसमें कार्य या बंद नहीं हो सकते हैं।

अपने कोड के साथ समस्या यह इस प्रकार दोहरा है:

  1. चर elem वेब पेज संदर्भ से बाहर आरंभ नहीं हो जाता, यह दूसरा evaluate से पहुंच योग्य नहीं है।
  2. आप एक गैर-साधारण वस्तु, यानी एक डोम तत्व लौटाते हैं।

यह हल करने में एक आसान समस्या है, मुख्य रूप से वास्तविक "जेल" निष्पादन मॉडल को फिट करने के लिए कोड को सही ढंग से डिजाइन करके। कृपया सभी प्रासंगिक दस्तावेज सावधानीपूर्वक पढ़ें और included examples के टन का पता लगाएं।

+2

अच्छी नौकरी! हास्यास्पद आपके पास एकमात्र उत्तर था और आपका उपनाम "मार्गदर्शन" – pythonian29033

+1

का मतलब होता है, मुझे अभी भी यह सुनिश्चित नहीं है कि इसे कैसे प्राप्त किया जाए। मेरे पास पृष्ठ में चर का उपयोग करने का एक मामला है। मूल्यांकन()। मैं मूल्यांकन() पर पारित स्ट्रिंग के आधार पर डीओएम तत्व खोजना चाहता हूं। क्या आप मुझे कोड दिखा सकते हैं/मुझे कोड पर इंगित कर सकते हैं? – rohit12sh

+1

"कृपया सभी प्रासंगिक दस्तावेज (...) ध्यान से पढ़ें" - हुह? जैसे। "मैं आपको बताने वाला नहीं हूं ..." –

संबंधित मुद्दे