2012-12-15 11 views
5

पर फेसबुक के साथ काम नहीं कर रहा है jQuerify वर्तमान में प्रदर्शित वेब पेज पर jquery समर्थन जोड़ने के लिए एक छोटा बुकमार्कमार्क है। इस पृष्ठ पर एक नज़र डालें: http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/jQuerify क्रोम

यह डेमो मुझे बताता है कि jquery पहले से डाउनलोड हो चुका है, अगर इसे लोड नहीं किया गया है, तो सक्रिय संस्करण प्रदर्शित करें। मेरी समस्या यह है: कुछ पृष्ठों पर कुछ भी प्रदर्शित नहीं होता है, जब Google क्रोम के साथ ब्राउज़ करते हैं, जैसे फेसबुक, google (कैश किए गए पृष्ठ पर नहीं बल्कि पृष्ठ परिणाम) यह IE का उपयोग करते समय इन पृष्ठों पर काम कर रहा है।

मैंने क्रोम पर उपयोगकर्ता Google सत्र डिस्कनेक्ट करने का प्रयास किया, लेकिन मुझे अभी भी समस्या है। मैंने सोचा कि यह https url के कारण हुआ था। लेकिन यह "सभी सामग्री प्रदर्शित करने" की पुष्टि करने के बाद आईई में ठीक दिखता है।

क्रोम में गलत कॉन्फ़िगरेशन हो सकता है? क्या jQuerify के लिए कोई फिक्स है या क्या मुझे छोड़ देना चाहिए और jquery और दूरस्थ स्क्रिप्ट लोड करने के लिए एक और समाधान ढूंढना चाहिए?

सलाह के लिए धन्यवाद।

उत्तर

8

Google क्रोम में, आप ब्राउज़र के कंसोल में त्रुटि संदेश देख सकते हैं।

यह कहते हैं: "स्क्रिप्ट src https: // क्योंकि इसमें यह सामग्री सुरक्षा नीति के निर्देश का उल्लंघन करती है स्क्रिप्ट 'http://code.jquery.com/jquery.min.js' लोड करने के लिए इनकार कर दिया। facebook.com http: // .facebook.com https: // .fbcdn.net http: // .fbcdn.net * .facebook.net * .google-analytics.com * .virtualearth.net .google .com 127.0.0.1: * .spotilocal.com: * क्रोम-एक्सटेंशन: // lifbcibllhkdhoafpjfnlhfpfgnpldfl 'असुरक्षित-इनलाइन' 'असुरक्षित-eval' https: // .akamaihd.net http: // .akamaihd.net " ।

यह इस तथ्य के कारण है कि फेसबुक ने एक सुरक्षा सुविधा लागू की है जिसे HTTP शीर्षलेख "एक्स-वेबकिट-सीएसपी" के साथ कार्यान्वित किया गया है।

है यही कारण है कि फेसबुक पर वर्तमान कार्यान्वयन वेबकिट आधारित ब्राउज़रों (क्रोम और सफारी) jQuerify बुकमार्कलेट Firefox और IE पर ठीक काम करता है में बाहरी स्क्रिप्ट लोड हो रहा है को प्रभावित करता है। क्रोम के लिए

समाधान, आप निम्नलिखित दृष्टिकोण के साथ यह कर सकते हैं:

  • आप उपरोक्त विवरण में देख सकते हैं के बाद से, 127.0.0.1:* समर्थित है। बस अपने सिस्टम पर एक साधारण वेब होस्ट चलाएं (उदाहरण: अपाचे वेब सर्वर)। अपने सिस्टम पर अपने अपाचे लिंक निर्देशिका में jquery जावास्क्रिप्ट फ़ाइल कॉपी करें। अब यह फ़ाइल http://127.0.0.1/jquery.js जैसे पथ के साथ पहुंच योग्य होगी (नोट: http://localhost/ का उपयोग न करें)। JQuerify बुकमार्कमार्क में, jQuery फ़ाइल का पथ http://code.jquery.com/jquery.min.js से http://localhost/jquery.js पर बदलें। अब बुकमार्लेट ठीक काम करेगा।

              या

  • लोड बुकमार्कलेट में पूरी jQuery कोड तो यह बाहरी स्क्रिप्ट फ़ाइलें लोड नहीं करता है।अनुशंसित नहीं है क्योंकि यह पहले दृष्टिकोण के रूप में उपयोगी नहीं होगा अगर आप इसका उपयोग jQuery फ़ाइल के माध्यम से डीबगिंग के लिए भी करना चाहते हैं।
+1

क्या आप जानते हैं कि ब्राउजर एक्सटेंशन के माध्यम से बाहरी स्क्रिप्ट लोड करना संभव है? मेरे पास एक बुकमार्कलेट है जो बहुत सारे कोड लोड कर रहा है और इसका उपयोग उन लोगों द्वारा किया जाता है जो किसी भी परिस्थिति में स्थानीय वेबसर्वर नहीं चलाते हैं। – Max

+0

https://builder.addons.mozilla.org/ और https://developer.mozilla.org/en-US/docs/XUL/School_tutorial ... को आजमाएं फ़ायरफ़ॉक्स के लिए ऐसे एक्सटेंशन जेनरेट करने में सक्षम होना चाहिए ... यदि आप इसे सार्वजनिक रूप से प्रकाशित करना चाहते हैं तो आपको मोज़िला की नीतियों के माध्यम से जाना होगा ... इसी तरह आप क्रोम और ओपेरा के लिए संसाधन ढूंढ पाएंगे ... या ... आप बस जेएस फाइलों को लोड कर सकते हैं और कैशिंग सक्षम कर सकते हैं ताकि दोहराना उपयोग ठीक काम करता है (कैश-कंट्रोल HTTP हेडर ऐसा करता है ... जैसा कि आप http://jsbookmarklets.com/ पर बुकमार्कलेट के लिए देख सकते हैं) –

+0

सभी कोड को बुकमार्कलेट में डालकर काम नहीं करना पड़ेगा यदि आपको लोड करने की आवश्यकता है उस डोमेन में किसी सर्वर को अनुरोध करने के लिए एक छिपी आईएफआरएएम में एक और साइट जो अन्यथा क्रॉस-डोमेन प्रतिबंधों से रोकती है। "ब्राउज़र बुकमार्लेट्स को सीएसपी से प्रभावित नहीं होना चाहिए ... लेकिन, किसी भी ब्राउज़र को यह सही नहीं मिलता है। सभी कारण सीएसपी उल्लंघन करते हैं और बुकमार्कलेट को काम करने से रोकते हैं।" https://github.com/blog/1477-content-security-policy तो वास्तव में, यह एक बग है जिसे सभी ब्राउज़रों में ठीक करने की आवश्यकता है। – Michael