सवाल मैं एक जावास्क्रिप्ट फ़ाइल को किसी अन्य जावास्क्रिप्ट फ़ाइल में कैसे शामिल करूं?


जावास्क्रिप्ट में कुछ ऐसा है @import सीएसएस में जो आपको एक जावास्क्रिप्ट फ़ाइल को अन्य जावास्क्रिप्ट फ़ाइल के अंदर शामिल करने की अनुमति देता है?


4158
2018-06-04 11:59


मूल


stackoverflow.com/questions/21294/... - Daniel A. White
@ डैनियल, मैं एक एजेक्स कॉल का उपयोग नहीं करना चाहता। - Alec Smart
क्यों आयातित फ़ाइल को दूसरे की आवश्यकता नहीं है, जिसकी आवश्यकता है, बस आदेश का उपयोग कर script टैग? - falsarella
@ क्लाउडियो यह मदद नहीं करेगा आयात कुछ भी, लेकिन यह भी काम करना चाहिए। यदि आपके पास एक जेएस फ़ाइल है जो किसी अन्य जेएस फ़ाइल पर निर्भर करती है, तो पहले निर्भरता फ़ाइलों के स्क्रिप्ट टैग को पहले घोषित करें, इसलिए बाद में इसकी निर्भरताएं पहले से ही लोड हो जाएंगी। यदि आपके पास ऐसी स्थिति है जहां यह एक संभावित दृष्टिकोण नहीं है, तो यहां जवाब उपयोगी होना चाहिए। - falsarella
ऐसा करने का व्यावहारिक लाभ क्या है? किसी भी तरह से जावास्क्रिप्ट फ़ाइल पर निर्भर कोड आधार लोड नहीं होगा और किसी भी मामले में काम नहीं करना शुरू हो गया है! - Ciasto piekarz


जवाब:


जावास्क्रिप्ट के पुराने संस्करणों में कोई आयात, शामिल या आवश्यकता नहीं थी, इस समस्या के कई अलग-अलग दृष्टिकोण विकसित किए गए हैं।

लेकिन जावास्क्रिप्ट के हाल के संस्करणों में मानक हैं ईएस 6 मॉड्यूल मॉड्यूल आयात करने के लिए, हालांकि यह अभी तक अधिकांश ब्राउज़रों द्वारा समर्थित नहीं है। ब्राउजर अनुप्रयोगों के साथ मॉड्यूल का उपयोग करने वाले बहुत से लोग उपयोग करते हैं निर्माण और / या transpilation मॉड्यूल जैसे सुविधाओं के साथ नए वाक्यविन्यास का उपयोग करने के लिए व्यावहारिक बनाने के लिए उपकरण।

ईएस 6 मॉड्यूल

ध्यान दें कि वर्तमान में, ES6 मॉड्यूल के लिए ब्राउज़र समर्थन विशेष रूप से महान नहीं है, लेकिन यह इसके रास्ते पर है। इसके अनुसार यह StackOverflow उत्तर, वे क्रोम 61, फ़ायरफ़ॉक्स 54 में समर्थित हैं (पीछे dom.moduleScripts.enabled समायोजन में about:config) और एमएस एज 16, केवल सफारी 10.1 के साथ झंडे के बिना समर्थन प्रदान करते हैं।

इस प्रकार, आपको वर्तमान में अभी भी वैध जावास्क्रिप्ट के लिए बिल्ड और / या ट्रांसलेशन उपकरण का उपयोग करने की आवश्यकता होगी जो उपयोगकर्ता के लिए उन ब्राउज़र संस्करणों का उपयोग करने या किसी भी झंडे को सक्षम करने के लिए बिना किसी आवश्यकता के चलाएगा।

एक बार ईएस 6 मॉड्यूल आम हैं, तो यहां बताया गया है कि आप उनका उपयोग कैसे करेंगे:

// module.js
export function hello() {
  return "Hello";
}
// main.js
import {hello} from 'module'; // or './module'
let val = hello(); // val is "Hello";

Node.js की आवश्यकता है

Node.js वर्तमान में एक का उपयोग कर रहा है module.exports / आवश्यकता होती है प्रणाली। आप उपयोग कर सकते हैं babel यदि आप चाहते हैं तो पारदर्शी करने के लिए import वाक्य - विन्यास।

// mymodule.js
module.exports = {
   hello: function() {
      return "Hello";
   }
}
// server.js
const myModule = require('./mymodule');
let val = myModule.hello(); // val is "Hello"   

जावास्क्रिप्ट में बाहरी जावास्क्रिप्ट सामग्री को शामिल करने के अन्य तरीके हैं जिन्हें प्रीप्रोकैसिंग की आवश्यकता नहीं है।

AJAX लोड हो रहा है

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

jQuery लोड हो रहा है

jQuery लाइब्रेरी लोडिंग कार्यक्षमता प्रदान करता है एक पंक्ति में:

$.getScript("my_lovely_script.js", function() {
   alert("Script loaded but not necessarily executed.");
});

गतिशील स्क्रिप्ट लोड हो रहा है

आप HTML में स्क्रिप्ट यूआरएल के साथ एक स्क्रिप्ट टैग जोड़ सकते हैं। JQuery के ऊपरी हिस्से से बचने के लिए, यह एक आदर्श समाधान है।

लिपि एक अलग सर्वर पर भी रह सकती है। इसके अलावा, ब्राउज़र कोड का मूल्यांकन करता है। <script> टैग को वेब पेज में इंजेक्शन दिया जा सकता है <head>, या समापन से ठीक पहले डाला गया </body> टैग।

यहां एक उदाहरण दिया गया है कि यह कैसे काम कर सकता है:

function dynamicallyLoadScript(url) {
    var script = document.createElement("script"); // Make a script DOM node
    script.src = url; // Set it's src to the provided URL

    document.head.appendChild(script); // Add it to the end of the head section of the page (could change 'head' to 'body' to add it to the end of the body section instead)
}

यह फ़ंक्शन एक नया जोड़ देगा <script> पृष्ठ के मुख्य भाग के अंत में टैग करें, जहां src विशेषता यूआरएल पर सेट है जो फ़ंक्शन को पहले पैरामीटर के रूप में दी जाती है।

इन दोनों समाधानों पर चर्चा और सचित्र हैं जावास्क्रिप्ट पागलपन: गतिशील स्क्रिप्ट लोड हो रहा है

यह पता लगाना कि स्क्रिप्ट कब निष्पादित की गई है

अब, एक बड़ी समस्या है जिसके बारे में आपको अवश्य पता होना चाहिए। ऐसा करने से इसका तात्पर्य है आप दूरस्थ रूप से कोड लोड करते हैं। आधुनिक वेब ब्राउज़र फ़ाइल लोड करेंगे और आपकी वर्तमान स्क्रिप्ट को निष्पादित करते रहेंगे क्योंकि वे प्रदर्शन को बेहतर बनाने के लिए सब कुछ अतुल्यकालिक रूप से लोड करते हैं। (यह jQuery विधि और मैन्युअल गतिशील स्क्रिप्ट लोडिंग विधि दोनों पर लागू होता है।)

इसका मतलब है कि यदि आप इन चालों का सीधे उपयोग करते हैं, लोड होने के बाद आप अगली पंक्ति में अपने नए लोड किए गए कोड का उपयोग करने में सक्षम नहीं होंगे, क्योंकि यह अभी भी लोड हो जाएगा।

उदाहरण के लिए: my_lovely_script.js शामिल MySuperObject:

var js = document.createElement("script");

js.type = "text/javascript";
js.src = jsFilePath;

document.body.appendChild(js);

var s = new MySuperObject();

Error : MySuperObject is undefined

फिर आप पेज को मारते हुए पुनः लोड करें F5। और यह काम करता है! भ्रामक ...

तो इसके बारे में क्या करना है?

खैर, आप जिस लिंक को मैंने आपको दिए गए लिंक में सुझाव दिया है, उस हैक का उपयोग कर सकते हैं। संक्षेप में, जल्दी में लोगों के लिए, जब स्क्रिप्ट लोड हो जाती है तो वह कॉलबैक फ़ंक्शन चलाने के लिए एक ईवेंट का उपयोग करता है। तो आप कॉलबैक फ़ंक्शन में रिमोट लाइब्रेरी का उपयोग करके सभी कोड डाल सकते हैं। उदाहरण के लिए:

function loadScript(url, callback)
{
    // Adding the script tag to the head as suggested before
    var head = document.getElementsByTagName('head')[0];
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = url;

    // Then bind the event to the callback function.
    // There are several events for cross browser compatibility.
    script.onreadystatechange = callback;
    script.onload = callback;

    // Fire the loading
    head.appendChild(script);
}

फिर आप जिस कोड को उपयोग करना चाहते हैं उसे लिखने के बाद स्क्रिप्ट को लोड किया जाता है लैम्ब्डा समारोह:

var myPrettyCode = function() {
   // Here, do whatever you want
};

फिर आप यह सब चलाते हैं:

loadScript("my_lovely_script.js", myPrettyCode);

ध्यान दें कि ब्राउज़र के आधार पर डीओएम लोड होने के बाद या पहले, स्क्रिप्ट निष्पादित हो सकती है और क्या आपने लाइन शामिल की है script.async = false;। वहां एक आम तौर पर जावास्क्रिप्ट लोडिंग पर महान लेख जो इस पर चर्चा करता है।

स्रोत कोड मर्ज / प्रीप्रोकैसिंग

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


3586
2018-06-04 12:13



ब्राउज़र में सभी जावास्क्रिप्ट फ़ाइलों को निष्पादित नहीं किया जाता है। - Michael Paulukonis
नहीं, लेकिन कोई ऐसा जो राइनो के रूप में उन्नत कुछ का उपयोग करता है या नहीं तो यह सवाल नहीं पूछेगा। - e-satis
बस पूरा होने के लिए, एक तीसरा तरीका है: कुछ समाधानों में जब आप जावास्क्रिप्ट फ़ाइलों को नियंत्रित करते हैं, तो आप केवल 1 विशाल जावास्क्रिप्ट फ़ाइल बना सकते हैं जो दोनों फ़ाइलों की सामग्री को जोड़ती है। - Toad
"Document.createElement (" my_lovely_script.js ") नहीं होना चाहिए;" उदाहरण में "document.createElement (" स्क्रिप्ट ")" हो? - Russell Silva
अगर यह आपका कोड है जिसे आप निष्पादित कर रहे हैं तो हैक के दरवाजे को खोलने के लिए कैसे eval? - Vince Panuccio


अगर कोई और अधिक उन्नत खोज रहा है, तो कोशिश करें RequireJS। आपको निर्भरता प्रबंधन, बेहतर सहमति, और डुप्लिकेशन से बचने के लिए अतिरिक्त लाभ मिलेगा (यानी, एक से अधिक बार एक स्क्रिप्ट पुनर्प्राप्त करना)।

आप अपनी जावास्क्रिप्ट फ़ाइलों को "मॉड्यूल" में लिख सकते हैं और फिर उन्हें अन्य स्क्रिप्ट में निर्भरता के रूप में संदर्भित कर सकते हैं। या आप RequjS को सरल "इस स्क्रिप्ट को प्राप्त करें" समाधान के रूप में उपयोग कर सकते हैं।

उदाहरण:

मॉड्यूल के रूप में निर्भरता परिभाषित करें:

कुछ-dependency.js

define(['lib/dependency1', 'lib/dependency2'], function (d1, d2) {

     //Your actual script goes here.   
     //The dependent scripts will be fetched if necessary.

     return libraryObject;  //For example, jQuery object
});

implementation.js आपकी "मुख्य" जावास्क्रिप्ट फ़ाइल है जो इस पर निर्भर करती है कुछ-dependency.js

require(['some-dependency'], function(dependency) {

    //Your script goes here
    //some-dependency.js is fetched.   
    //Then your script is executed
});

से उद्धरण GitHub पढ़ें:

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

RequJS मॉड्यूल / फ़ाइलों को लोड करने के लिए सादे स्क्रिप्ट टैग का उपयोग करता है, इसलिए इसे करना चाहिए   आसान डीबगिंग के लिए अनुमति दें। इसका उपयोग मौजूदा लोड करने के लिए किया जा सकता है   जावास्क्रिप्ट फाइलें, तो आप इसे बिना किसी मौजूदा प्रोजेक्ट में जोड़ सकते हैं   अपनी जावास्क्रिप्ट फ़ाइलों को फिर से लिखना है।

...


514
2018-06-07 20:55



उद्धरण के लिए +1 सही ऐसा करने का तरीका :-) यदि आप एक उदाहरण शामिल करते हैं तो यह बेहतर होगा! - Sean Vieira
आपके सुझाव के अनुसार @ सीन - मैंने एक छोटा सा उदाहरण जोड़ा - John Strickler
@Aaaidan: मैटडमो का कारण यह एक बाहरी पुस्तकालय पर निर्भर करता है जो बदले में स्वीकृत उत्तर पर भरोसा करता है। - David Mulder
Require.js को दूर करने के लिए सबसे नवीनतम कोणीय जेएस होगा जो अन्य बाध्यकारी और समृद्ध HTML सुविधाओं के साथ अधिक स्थिर और उपयोग करने में आसान है। - zeeshan
-1: उन अवशोषण - "some_dependency" - वास्तव में खराब हैं, इंडेक्स भ्रम में जोड़ते हैं। मैं यह समझने के लिए संघर्ष करता हूं कि एक कामकाजी कोड उदाहरण कैसा दिखता है। अगर लेखक ने कामकाजी उदाहरण की आपूर्ति की है, तो लगभग कोई भी अपनी जरूरतों को पूरा करने और सामान्यीकृत करने में सक्षम होगा। - Tegiri Nenashi


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

आपको उपयोग करने की ज़रूरत है jQuery.append()पर <head> आपके पृष्ठ का तत्व, जो है:

$("head").append('<script type="text/javascript" src="' + script + '"></script>');

हालांकि, इस विधि में भी एक समस्या है: यदि आयातित जावास्क्रिप्ट फ़ाइल में कोई त्रुटि होती है, Firebug (और फ़ायरफ़ॉक्स त्रुटि कंसोल और भी क्रोम डेवलपर टूल्स साथ ही) गलत तरीके से इसकी जगह की रिपोर्ट करेगा, यदि आप जावास्क्रिप्ट त्रुटियों को बहुत कम करने के लिए फ़ायरबग का उपयोग करते हैं तो एक बड़ी समस्या है (मैं करता हूं)। फ़ायरबग बस किसी कारण से नई लोड की गई फ़ाइल के बारे में नहीं जानता है, इसलिए यदि उस फ़ाइल में कोई त्रुटि होती है, तो यह रिपोर्ट करता है कि यह आपके मुख्य में हुआ एचटीएमएल फ़ाइल, और आपको त्रुटि के वास्तविक कारण को खोजने में परेशानी होगी।

लेकिन अगर यह आपके लिए कोई समस्या नहीं है, तो इस विधि को काम करना चाहिए।

मैंने वास्तव में एक jQuery प्लगइन लिखा है $ .import_js () जो इस विधि का उपयोग करता है:

(function($)
{
    /*
     * $.import_js() helper (for JavaScript importing within JavaScript code).
     */
    var import_js_imported = [];

    $.extend(true,
    {
        import_js : function(script)
        {
            var found = false;
            for (var i = 0; i < import_js_imported.length; i++)
                if (import_js_imported[i] == script) {
                    found = true;
                    break;
                }

            if (found == false) {
                $("head").append('<script type="text/javascript" src="' + script + '"></script>');
                import_js_imported.push(script);
            }
        }
    });

})(jQuery);

तो जावास्क्रिप्ट आयात करने के लिए आपको बस इतना करना होगा:

$.import_js('/path_to_project/scripts/somefunctions.js');

मैंने इसके लिए भी एक सरल परीक्षण किया उदाहरण

इसमें एक शामिल है main.js मुख्य HTML में फ़ाइल और फिर स्क्रिप्ट में फ़ाइल करें main.js का उपयोग करता है $.import_js() एक अतिरिक्त फ़ाइल आयात करने के लिए included.js, जो इस समारोह को परिभाषित करता है:

function hello()
{
    alert("Hello world!");
}

और शामिल करने के बाद सही included.js, द hello() समारोह कहा जाता है, और आपको चेतावनी मिलती है।

(यह उत्तर ई-सैटिस की टिप्पणी के जवाब में है)।


162
2018-04-28 15:25



मैं इस विधि की कोशिश कर रहा हूं, लेकिन मेरे लिए काम नहीं कर रहा है, तत्व सिर्फ हेड टैग में दिखाई नहीं देता है। - juanpastas
@ जुआनपास्टस - उपयोग करें jQuery.getScript, इस तरह आपको प्लगइन लिखने की चिंता करने की ज़रूरत नहीं है ... - MattDMo
क्या यह तकनीक वास्तव में तब तक अवरुद्ध होती है जब तक आयातित स्क्रिप्ट दोनों लोड और निष्पादित नहीं होती है? - Flimm
हम्म, के अनुसार यह लेख, एक संलग्न script तत्व head इसे असीमित रूप से चलाने के लिए कारण होगा, जब तक कि async विशेष रूप से सेट है false। - Flimm
स्क्रिप्ट वैरिएबल में एचटीएमएल इकाइयों को एन्कोड नहीं किया जाना चाहिए? अगर लिंक में शामिल है "कोड टूट जाएगा - Soaku


एक और तरीका, मेरी राय में बहुत साफ है, एक का उपयोग करने के बजाय एक तुल्यकालिक अजाक्स अनुरोध करना है <script> टैग। जो भी है Node.js हैंडल शामिल हैं।

JQuery का उपयोग करके एक उदाहरण यहां दिया गया है:

function require(script) {
    $.ajax({
        url: script,
        dataType: "script",
        async: false,           // <-- This is the key
        success: function () {
            // all good...
        },
        error: function () {
            throw new Error("Could not load script " + script);
        }
    });
}

फिर आप इसे अपने कोड में उपयोग कर सकते हैं क्योंकि आप आम तौर पर इनमें शामिल होते हैं:

require("/scripts/subscript.js");

और अगली पंक्ति में आवश्यक स्क्रिप्ट से फ़ंक्शन कॉल करने में सक्षम हो:

subscript.doSomethingCool(); 

134
2017-09-08 18:22



अच्छा समाधान, सिर में दुर्भाग्य से एसिंक शामिल है, AJAX समाधान काम करता है। - Matteo Conta
जैसा कि किसी और ने उल्लेख किया है, requjs.org यह करता है और इसमें एक प्री-कंपाइलर भी है जो जेएस फाइलों को एक साथ रखता है ताकि वे तेज़ी से लोड हो सकें। इसे आज़माने की आपकी इच्छा हो सकती है। - Ariel
पाया गया कि क्रोम के लिए फ़ाइल के निचले हिस्से में यह निर्देश जोड़कर मैं इसे डीबग कर सकता हूं: // @ sourceURL = view_index.js - Todd Vance
दुर्भाग्य से, async: झूठी अब jQuery में बहिष्कृत है। भविष्य में तोड़ सकता है, इसलिए मैं इससे बचूंगा। - sqram
@katsh हम यहां jqXHR ऑब्जेक्ट्स का उपयोग नहीं कर रहे हैं। आपका उद्धरण आपकी पिछली टिप्पणी का बैक अप नहीं लेता है async: false माना जाता है कि बहिष्कृत है। यह नहीं! जैसा कि आपके उद्धरण बताता है, केवल jqXHR संबंधित सामग्री है। - Zero3


आपके लिए एक अच्छी खबर है। बहुत जल्द आप आसानी से जावास्क्रिप्ट कोड लोड करने में सक्षम हो जाएगा। यह जावास्क्रिप्ट कोड के मॉड्यूल आयात करने का एक मानक तरीका बन जाएगा और कोर जावास्क्रिप्ट का हिस्सा होगा।

आपको बस लिखना है import cond from 'cond.js'; नामित एक मैक्रो लोड करने के लिए cond एक फाइल से cond.js

तो आपको किसी भी जावास्क्रिप्ट ढांचे पर भरोसा नहीं करना है और न ही आपको स्पष्ट रूप से बनाना है अजाक्स कहता है।

को देखें:


86
2017-07-03 13:32



jsfile पर आवश्यकता / आयात आने में बहुत लंबा रास्ता रहा है। (IMO)। - rwheadon
@Rwheadon हाँ आश्चर्यचकित लगता है कि यह भाषा का हिस्सा नहीं है! जेएस लोग कैसे कुछ करते हैं मेरे बाहर है! मैं इसके लिए नया हूं और यह पागलपन के सबसे बुरे (कई) बिट्स लगता है - Jonny Leeds
@ जॉनी-लीड्स निर्मित मॉड्यूल लोडिंग के बिना भी, ब्राउज़र में जावास्क्रिप्ट इतना लचीला है कि हम अपने मॉड्यूल प्रबंधन के लिए RequJS जैसी लाइब्रेरी को कार्यान्वित कर सकते हैं। - Keen
मध्य 2015- अभी भी किसी भी ब्राउज़र में लागू नहीं किया गया है, developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... - scape
हां आप सही हैं। अब मैं इसके लिए बुरा महसूस कर रहा हूं :(। ओह, एक बार सभी ब्राउज़रों में लागू होने पर यह जावास्क्रिप्ट में निर्मित एक शानदार सुविधा होगी। - Imdad


गतिशील रूप से एक जावास्क्रिप्ट टैग उत्पन्न करना और HTML दस्तावेज़ में अन्य जावास्क्रिप्ट कोड के अंदर से जोड़ना संभव है। यह लक्षित जावास्क्रिप्ट फ़ाइल लोड करेगा।

function includeJs(jsFilePath) {
    var js = document.createElement("script");

    js.type = "text/javascript";
    js.src = jsFilePath;

    document.body.appendChild(js);
}

includeJs("/path/to/some/file.js");

72
2018-06-04 12:02



यह काम करता है, लेकिन असंगत लोडिंग के कारण गंभीर समस्याएं हैं। - e-satis
उम ... वास्तव में कौन सा? - Svitlana Maksymchuk
@ ई-सैटिस - दरअसल, यह एक फायदा है, एक सिंक स्क्रिप्ट अवरुद्ध हो जाएगी। पाठ्यक्रमों के लिए घोड़े, लेकिन 10 में 9 बार आप गैर-अवरुद्ध विकल्प चाहते हैं। - annakata
@Sititana - इस तरह बनाई गई स्क्रिप्ट तत्व async हैं। वर्तमान में इसे एक छेड़छाड़ का शोषण के रूप में देखा जा सकता है, इसलिए यह भविष्य का प्रमाण नहीं हो सकता है, मैंने किसी भी मानक में कुछ भी नहीं देखा है जो इसे स्पष्ट करता है। - annakata
@ ई-सैटिस एसिंक्रोनस अच्छा है क्योंकि यह आपके पेज को फ्रीज नहीं करेगा। जब यह किया जाता है तो अधिसूचित होने के लिए कॉलबैक का उपयोग करें js.onload = callback; - Vitim.us


बयान import ईसीएमएस्क्रिप्ट 6 में है।

वाक्य - विन्यास

import name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import name , { member [ , [...] ] } from "module-name";
import "module-name" as name;

58
2018-04-17 01:56



... लेकिन आपके द्वारा लिंक किए गए पृष्ठ पर संगतता तालिका के अनुसार, किसी भी ब्राउज़र द्वारा आज तक समर्थित नहीं है। - Zero3
अब आप ES6 कोड लिख सकते हैं और इसे Babel.js के साथ संकलित कर सकते हैं (babeljs.io) जो भी आपकी पसंदीदा वर्तमान मॉड्यूल सिस्टम है (कॉमनजेएस / एएमडी / यूएमडी): babeljs.io/docs/usage/modules - Jeremy Harris
@ ज़ीरो 3 स्पष्ट रूप से नया आईई (एज) एकमात्र है - Julian Avar
ES6 के बिना ऐसा करने का कोई तरीका है? ब्राउज़र संगतता और जिनके पास ES6 नहीं है, वे इसकी मांग करते हैं। - IamGuest


हो सकता है कि आप इस फ़ंक्शन का उपयोग इस पृष्ठ पर प्राप्त कर सकें मैं जावास्क्रिप्ट फ़ाइल में एक जावास्क्रिप्ट फ़ाइल कैसे शामिल करूं?:

function include(filename)
{
    var head = document.getElementsByTagName('head')[0];

    var script = document.createElement('script');
    script.src = filename;
    script.type = 'text/javascript';

    head.appendChild(script)
}

47
2018-06-04 12:04



जोड़ने के लिए उपयोगी होना चाहिए script.onload = callback; - Vitim.us
@SvitlanaMaksymchuk तो, अगर मैं उपयोग नहीं करता varवैरिएबल वैश्विक होगा? - Francisco Corrales Morales
@ फ्रांसिस्को कोरल हां। - Christopher Chiche
यह var के साथ या बिना वैश्विक में समाप्त होता है :) - Vedran Maricevic.
इस विफल रहता है अगर पृष्ठ में नहीं है head। - Dan Dascalescu