पाद और कस्टम शैलियों में जावास्क्रिप्ट फ़ाइल जोड़ना


9

तेज़ पृष्ठ लोड के लिए मुझे घटकों और मॉड्यूल से पृष्ठ के अंत में JS सम्मिलित करना होगा।

स्क्रिप्ट घोषित करने का निम्न तरीका इसे नीचे डालने का काम नहीं करता है क्योंकि इसे पाद लेख में रखने के लिए कोई पैरामीटर नहीं है।

$rsws_document  = JFactory::getDocument(); 
$rsws_document->addScript();

तो मेरे उद्देश्य को पूरा करने के लिए संक्षिप्त तरीके क्या हैं? अगर जूमला ऐसी कार्यक्षमता प्रदान नहीं करता है, तो यह पेज लोड गति के लिए एक महत्वपूर्ण कमी है।

मैं एक मॉड्यूल से कस्टम स्टाइलशीट भी जोड़ना चाहता हूं, ताकि वे केवल एक बार पृष्ठ पर इंजेक्ट हों, भले ही एक ही मॉड्यूल उस पृष्ठ में कई बार जोड़ दे -

<style type="text/css"> .classname { color:red; }.....</style>

इसे कैसे प्राप्त किया जा सकता है?


1
आपको अपना प्रश्न एक विषय पर रखना चाहिए। आपके यहाँ दो प्रश्न हैं।

1
एक एक्सटेंशन है जो मदद कर सकता है: Extension.joomla.org/extension/scriptsdown
noiragneau

जवाबों:


6

JDocument-> addScript () में स्क्रिप्ट के लोड को रोकने और / या इसे async लोड करने के विकल्प हैं। एपीआई डॉक देखें: http://api.joomla.org/cms-3/classes/JDocumentHTML.html#method_addScript

यह ब्राउज़र को इस प्रक्रिया में बाद में स्क्रिप्ट लोड करने की अनुमति देगा, जो पगेलोड समय के साथ मदद करेगा।

पृष्ठ के निचले भाग में स्क्रिप्ट लोड करने के लिए कोई एपीआई नहीं है। यदि आपको इसकी आवश्यकता है, तो आपको तीसरे पक्ष के एक्सटेंशन का उपयोग करना होगा या इसे सीधे टेम्पलेट में जोड़ना होगा।


हाँ, मैं इसके बारे में जानता था। लेकिन वर्डप्रेस में स्क्रिप्ट और कस्टम css दोनों के मामले में मेरे प्रश्नों के विषय में इस तरह की विशेषताएं हैं। जूमला को इसे जोड़ना चाहिए।
देव- m

कुछ ऐसा जोड़ने की चर्चा चल रही थी। व्यक्तिगत रूप से मैं इसे defer / async पर सबसे नीचे जोड़ने का लाभ नहीं देखता।
बेक्चुअल

2

अब तक मुझे लगता है कि पेज के नीचे स्क्रिप्ट को लोड करने का कोई विकल्प नहीं है।

अपने दूसरे प्रश्न के लिए, आप स्थैतिक बूलियन संपत्ति का उपयोग कर सकते हैं और इसे सही कर सकते हैं जब पहली बार आपके सीएसएस का प्रतिपादन किया गया हो। निम्नलिखित मॉड्यूल उदाहरणों के लिए इस संपत्ति का परीक्षण करें ताकि यह तय किया जा सके कि आपको अपना सीएसएस जोड़ने की आवश्यकता है या नहीं।

शायद इस स्थिर संपत्ति को जोड़ने के लिए एक अच्छी जगह एक मॉड्यूल सहायक वर्ग है।

सादर,


2

$ डॉक्यूमेंट-> एडस्क्रिप्ट () टैग के पहले हेडर सेक्शन में हमेशा स्क्रिप्ट जोड़ता है। इसलिए, यदि आप पृष्ठ के नीचे एक स्क्रिप्ट फ़ाइल लोड करना चाहते हैं, तो आपको उस फ़ाइल में js को बस उपयोग करके शामिल करना होगा<script src="{pathtojacvascriptfile}"></script>

मुझे उम्मीद है कि यह मदद कर सकता है


2

अभी पाद लेख में स्क्रिप्ट जोड़ने की कोई विधि नहीं है। हालाँकि आप एक प्लगइन बना सकते हैं जो आउटपुट प्राप्त करता है, उचित रूप से नामित टैग के लिए खोज करता है, पाद लेख की तरह और अपने कोड में जोड़ने के लिए str_replace का उपयोग करें।

लेकिन आप इन एक्सटेंशन को प्राप्त करने के लिए उपयोग कर सकते हैं:

  1. ScriptsDown
  2. JCH ऑप्टिमाइज़ करें

इसके अलावा मुझे एक तरीका मिला। मैं कोर कोड को हैक नहीं करना पसंद करता हूं, लेकिन इस समय मैं सबसे अच्छा आ सकता हूं।

कृपया इस लिंक की जाँच करें - जावास्क्रिप्ट फ़ाइलों में पाद लेख शामिल हैं

मुझे आशा है कि यह दूसरों की मदद करेगा :)


2

हम "ब्लैंक मॉड्यूल" नामक एक मॉड्यूल का उपयोग करते हैं, जो किसी भी स्क्रिप्ट (PHP, जावा, सीएसएस, एचटीएमएल, जो भी हो) को डालने की अनुमति देता है और यह चुनना है कि इसे कहां लोड करना है (सिर, शरीर, शरीर का अंत, आदि)।

यह मुफ़्त है, और मैंने इसे पूरी तरह से उपयोगी पाया: http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/custom-code-in-modules/3668

स्क्रिप्ट को शरीर के नीचे से स्थानांतरित करने के लिए यह थोड़ा अधिक काम है। इसे इस्तेमाल करो:

टेम्प्लेट में शामिल करें:

<? Php
$ सिर = $ doc-> getHeadData ();
// स्क्रिप्ट को हटा दें
unset ($ doc -> _ स्क्रिप्ट [JURI :: root (सच)। '/media/system/js/mootools-more.js']);
?>

प्रत्येक स्क्रिप्ट के लिए एक "अनसेट" पंक्ति जोड़ें, जिसे आपको सिर से हटाने की आवश्यकता है। फिर इसे नीचे (डिबग पोज़िशन?) में लोड करने वाले रिक्त मॉड्यूल में जोड़ें। एक प्लस, यदि आप अलग-अलग रिक्त मॉड्यूल बनाते हैं, तो आप केवल उन लिपियों को लोड कर सकते हैं जहां जरूरत है (जैसे, केवल मोटूलों के लिए एक मॉड्यूल उदाहरण, इसे केवल एक विशिष्ट पृष्ठ पर लोड करना)।

शैलियों के लिए, आप ब्लैंक मॉड्यूल का उपयोग भी कर सकते हैं।

आशा है कि ये आपकी मदद करेगा।


0

मैंने अभी तक अपने आप से कोशिश नहीं की है। आप एक ऐसा मॉड्यूल बना सकते हैं जो बिना HTML प्रदर्शित करता है, बस स्क्रिप्ट और शैलियों को प्रिंट करता है, लेकिन यह उन पृष्ठों पर नीचे मॉड्यूल स्थिति में होता है जहां आपके अन्य मॉड्यूल को प्रदर्शित किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.