दिलचस्प पोस्ट
आप एक WPF वस्तु कैसे क्लोन कर सकते हैं? मैं कैसे पता लगा सकता है कि एक आईओएस ऐप जेलब्रेक फोन पर चल रहा है? विभिन्न डोमेन में सत्र चर को संरक्षित करना स्ट्रिंग के पहले एन वर्ण प्राप्त करें फास्ट बिग्नम वर्ग गणना मैं एक विशेषता के मूल्य में विशेषता परिवर्तन का पता लगाया मैक ओएस एक्स 10.6.4 पर अजगर 2.7 की स्थापना कैसे करें? स्ट्रिंग को यूटीएफ -8 में एन्कोड करें तालिका पंक्ति पर स्लाइडडाउन (या शो) फ़ंक्शन कैसे उपयोग करें? मैं jQuery ऑब्जेक्ट से चयनकर्ता कैसे प्राप्त कर सकता हूं जब जीएचसी हास्केल में मेमोआइज़ेशन स्वचालित है? पायथन: एक अनबाउंड विधि बाँधें? क्लिक करने पर छवि फ़ाइलों को डाउनलोड करने के लिए ब्राउज़र को बल दें HTML / XML को पार्स करने के लिए regex का उपयोग करना क्यों संभव नहीं है: आम आदमी की शर्तों में एक औपचारिक स्पष्टीकरण सदस्य फ़ंक्शन के साथ धागा प्रारंभ करें

Jquery / Javascript का उपयोग करके, मेरे वेब पेज में से किसी एक से सभी छवियों को कैसे लोड करें I

मेरे पास "images" नामक एक फ़ोल्डर है जो कि मेरी। Js फ़ाइल के समान है। मैं "छवियाँ" फ़ोल्डर से सभी छवियों को अपने एचटीएमएल पेज में Jquery / Javascript का उपयोग करके लोड करना चाहता हूं।

चूंकि, छवियों के नाम कुछ पूर्णांक नहीं हैं, मुझे इन छवियों को कैसे लोड करना चाहिए?

वेब के समाधान से एकत्रित समाधान "Jquery / Javascript का उपयोग करके, मेरे वेब पेज में से किसी एक से सभी छवियों को कैसे लोड करें I"

उपयोग :

var dir = "Src/themes/base/images/"; var fileextension = ".png"; $.ajax({ //This will retrieve the contents of the folder if the folder is configured as 'browsable' url: dir, success: function (data) { //List all .png file names in the page $(data).find("a:contains(" + fileextension + ")").each(function () { var filename = this.href.replace(window.location.host, "").replace("http://", ""); $("body").append("<img src='" + dir + filename + "'>"); }); } }); 

यदि आपके पास अन्य एक्सटेंशन हैं, तो आप इसे एक सरणी बना सकते हैं और फिर in_array() का उपयोग करके एक से एक के माध्यम से जा सकते हैं।

Ps: उपर्युक्त स्रोत कोड का परीक्षण नहीं किया गया है।

स्थानीय और लाइव सर्वर पर बिना समस्याओं के काम करता है, और आपको अनुमत फाइल एक्सटेंशन की सीमांकित सूची को विस्तारित करने की अनुमति देता है:

 var folder = "images/"; $.ajax({ url : folder, success: function (data) { $(data).find("a").attr("href", function (i, val) { if( val.match(/\.(jpe?g|png|gif)$/) ) { $("body").append( "<img src='"+ folder + val +"'>" ); } }); } }); 

मूल रूप से रॉय के ओए में सुधार

इस पेज के शीर्ष पर रॉय एमजे द्वारा दिए गए उदाहरण में, यह अधिक फ़ाइल एन्शियन्स जोड़ने का तरीका है

 var fileextension = [".png", ".jpg"]; $(data).find("a:contains(" + (fileextension[0]) + "), a:contains(" + (fileextension[1]) + ")").each(function () { // here comes the rest of the function made by Roy MJ 

इस उदाहरण में मैंने अधिक शामिल हैं

यह करने का एक तरीका यह है। इसमें थोड़ा सी PHP भी शामिल है

PHP भाग:

 $filenameArray = []; $handle = opendir(dirname(realpath(__FILE__)).'/images/'); while($file = readdir($handle)){ if($file !== '.' && $file !== '..'){ array_push($filenameArray, "images/$file"); } } echo json_encode($filenameArray); 

JQuery के भाग:

 $.ajax({ url: "getImages.php", dataType: "json", success: function (data) { $.each(data, function(i,filename) { $('#imageDiv').prepend('<img src="'+ filename +'"><br>'); }); } }); 

तो मूल रूप से आप जेएसओएन के रूप में छवि फ़ाइल नामों की सूची वापस करने के लिए एक PHP फ़ाइल करते हैं, एक एजेक्स कॉल का उपयोग करते हुए JSON को पकड़ लेते हैं, और उन्हें एचटीएमएल में शामिल कर सकते हैं। आप संभवत: फ़ोल्डर से फ़ाइलों को हड़पने के लिए फ़िल्टर करना चाहते हैं

1 से पीएचपी भाग पर कुछ मदद की थी

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

संभावित रूप से, आप फाइलनामों की एक सूची को एक सादा पाठ फ़ाइल में आउटपुट कर सकते हैं:

 dir /B > filenames.txt 

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

 echo var g_FOLDER_CONTENTS = mlString(function() { /*! > folder_contents.js dir /B images >> folder_contents.js echo */}); >> folder_contents.js 

संकेतन के अंदर टिप्पणी के साथ अजीब समारोह का कारण जावास्क्रिप्ट में बहु-लाइन स्ट्रिंग पर सीमा को प्राप्त करना है। डीर कमांड का उत्पादन सही स्ट्रिंग लिखने के लिए प्रारूपित नहीं किया जा सकता, इसलिए मुझे यहां एक वैकल्पिक हल मिला।

 function mlString(f) { return f.toString(). replace(/^[^\/]+\/\*!?/, ''). replace(/\*\/[^\/]+$/, ''); } 

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

 var filenames = g_FOLDER_CONTENTS.match(/\S+/g); 

यहां इसका एक उदाहरण रखा गया है: image_loader.zip

उदाहरण में, run.bat जावास्क्रिप्ट फाइल उत्पन्न करता है और index.html को खोलता है, इसलिए आपको स्वतः index.html को खोलने की आवश्यकता नहीं है।

नोट : .bat विंडोज़ में एक निष्पादन योग्य प्रकार है, इसलिए यदि आप इस तरह से कुछ यादृच्छिक इंटरनेट लिंक से डाउनलोड कर रहे हैं तो चलने से पहले एक पाठ संपादक में उन्हें खोलें।

यदि आप लिनक्स या ओएसएक्स चला रहे हैं, तो आप शायद बैच फ़ाइल के समान कुछ कर सकते हैं और किसी भी mlString फग के बिना सही ढंग से स्वरूपित जावास्क्रिप्ट स्ट्रिंग का निर्माण कर सकते हैं।

 $(document).ready(function(){ var dir = "test/"; // folder location var fileextension = ".jpg"; // image format var i = "1"; $(function imageloop(){ $("<img />").attr('src', dir + i + fileextension ).appendTo(".testing"); if (i==13){ alert('loaded'); } else{ i++; imageloop(); }; }); }); 

इस स्क्रिप्ट के लिए मैंने अपनी छवि फ़ाइलों को फ़ोल्डर में 1.jpg, 2.jpg, 3.jpg, …. से 13.jpg के रूप में नाम दिया है आप अपनी इच्छा के अनुसार निर्देशिका और फ़ाइल नाम बदल सकते हैं

आप इसे स्वचालित रूप से नहीं कर सकते आपके जेएस फाइल उसी निर्देशिका में नहीं देख सकते हैं।

सबसे आसान शायद आपके जावास्क्रिप्ट में उन छवि नामों की एक सूची देनी है।

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

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

आप डायरेक्टरी में फ़ाइल नाम पाने के लिए fs.readdir या fs.readdirSync विधियों का उपयोग कर सकते हैं।

दो विधियों के बीच का अंतर यह है कि पहला एसिंक्रोनस है, इसलिए आपको एक कॉलबैक फ़ंक्शन प्रदान करना होगा जो पढ़ने की प्रक्रिया समाप्त होने पर निष्पादित हो जाएंगे।

दूसरा तुल्यकालिक है, यह फ़ाइल नाम सरणी देता है, लेकिन यह आपके कोड का कोई और निष्पादन रोक देगा जब तक कि पढ़ने की प्रक्रिया समाप्त नहीं हो जाती।

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

निम्न स्क्रिप्ट जोड़ें:

 <script type="text/javascript"> function mlString(f) { return f.toString(). replace(/^[^\/]+\/\*!?/, ''); replace(/\*\/[^\/]+$/, ''); } function run_onload() { console.log("Sample text for console"); var filenames = g_FOLDER_CONTENTS.match(/\S+/g); var fragment = document.createDocumentFragment(); for (var i = 0; i < filenames.length; ++i) { var extension = filenames[i].substring(filenames[i].length-3); if (extension == "png" || extension == "jpg") { var iDiv = document.createElement('div'); iDiv.id = 'images'; iDiv.className = 'item'; document.getElementById("image_div").appendChild(iDiv); iDiv.appendChild(fragment); var image = document.createElement("img"); image.className = "fancybox"; image.src = "images/" + filenames[i]; fragment.appendChild(image); } } document.getElementById("images").appendChild(fragment); } </script> 

तो निम्नलिखित के साथ एक जेएस फ़ाइल बनाएँ:

 var g_FOLDER_CONTENTS = mlString(function() { /*! 1.png 2.png 3.png */}); 

लिंक का उपयोग करने वाली छवियों के लिए क्रोम का उपयोग करना (जैसा कि पहले प्रस्तावित किया गया था) काम नहीं कर रहा क्योंकि यह कुछ ऐसा पैदा कर रहा है:

 (...) i18nTemplate.process(document, loadTimeData); </script> <script>start("current directory...")</script> <script>addRow("..","..",1,"170 B","10/2/15, 8:32:45 PM");</script> <script>addRow("fotos-interessantes-11.jpg","fotos-interessantes-> 11.jpg",false,"","");</script> 

शायद सबसे ज्यादा विश्वसनीय तरीका ऐसा कुछ करना है:

 var folder = "img/"; $.ajax({ url : folder, success: function (data) { var patt1 = /"([^"]*\.(jpe?g|png|gif))"/gi; // extract "*.jpeg" or "*.jpg" or "*.png" or "*.gif" var result = data.match(patt1); result = result.map(function(el) { return el.replace(/"/g, ""); }); // remove double quotes (") surrounding filename+extension // TODO: do this at regex! var uniqueNames = []; // this array will help to remove duplicate images $.each(result, function(i, el){ var el_url_encoded = encodeURIComponent(el); // avoid images with same name but converted to URL encoded console.log("under analysis: " + el); if($.inArray(el, uniqueNames) === -1 && $.inArray(el_url_encoded, uniqueNames) === -1){ console.log("adding " + el_url_encoded); uniqueNames.push(el_url_encoded); $("#slider").append( "<img src='" + el_url_encoded +"' alt=''>" ); // finaly add to HTML } else{ console.log(el_url_encoded + " already in!"); } }); }, error: function(xhr, textStatus, err) { alert('Error: here we go...'); alert(textStatus); alert(err); alert("readyState: "+xhr.readyState+"\n xhrStatus: "+xhr.status); alert("responseText: "+xhr.responseText); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>