मैं एक वेबपृष्ठ स्क्रीनशॉट करने के लिए फ़ैंटॉमजेएस का उपयोग कर रहा हूं। हालांकि पुस्तकालय कुछ होस्टिलेशन की अनुमति देने के लिए पृष्ठ डीओएम में jQuery कार्यक्षमता को इंजेक्ट करने के लिए एक होस्ट की गई jQuery फ़ाइल को कॉल करता है। यहां देखी गई: http://phantomjs.org/api/webpage/method/include-js.htmlphantomjs page.includeJs के साथ एक स्थानीय फ़ाइल का उपयोग कर?
कोड इस तरह दिखता है:
if (loaded) {
page.includeJs("http://code.jquery.com/jquery-1.8.3.min.js",
function() { . . .
मैं क्योंकि (क) यह धीमी और (ख) अपने विश्वसनीय नहीं है जे एस के लिए एक बाहरी कॉल करने के लिए नहीं करना चाहती। मैं एक स्थानीय प्रति उपयोग करना चाहते हैं और मैं इस तरह के रूप में है कि पथ सेट, लेकिन यह में लोड हो रहा है नहीं है।
page.includeJs("assets/javascript/jquery.min.js",
function() { . . .
यहाँ क्या समस्या है? मेरा पथ क्यों काम नहीं कर रहा है जैसा कि मैं उम्मीद करता हूं? क्या यह कार्य page.includeJs
संबंधित पथों की अनुमति नहीं देता है?
भी इंजेक्शनजे कोशिश की। पथ या तो हल नहीं कर रहा है। दस्तावेज़ों को पढ़ने से मुझे लगता है कि उनके पास सूक्ष्म अंतर भी हैं। – fyz
@fab हां, कुछ अंतर हैं लेकिन स्थानीय स्क्रिप्ट चलाने का यही एकमात्र तरीका है। आप शायद गलत फाइलपैथ प्रदान कर रहे हैं। पूर्ण एक का उपयोग करने का प्रयास करें और देखें कि यह काम करता है या नहीं। – ghost
बीटीडब्ल्यू 'इंजेक्टजेएस' सही नहीं है डॉक: "नोट: मूल्यांकन समारोह में तर्क और वापसी मूल्य एक साधारण आदिम वस्तु होना चाहिए। अंगूठे का नियम: यदि इसे JSON के माध्यम से क्रमबद्ध किया जा सकता है, तो यह ठीक है। क्लोजर, फ़ंक्शंस, डोम नोड्स इत्यादि काम नहीं करेंगे! " लिंक देखें: http://phantomjs.org/api/webpage/method/inject-js.html – fyz