2012-05-26 18 views
11

एक दूरस्थ सर्वर से एक छवि प्रदर्शित:HTML/जावास्क्रिप्ट - साथ रिमोट img src स्वत: HTTP/HTTPS उपसर्ग

<img src="http://remotehost/path/to/a.png" alt="Image A" /> 

हालांकि, अगर वर्तमान पृष्ठ HTTPS के माध्यम से पहुंचा जा सकता है, एन्क्रिप्ट नहीं किए गए HTTP के माध्यम से छवियों को जोड़ने सुरक्षा निकलेगा चेतावनी। जबकि मैं वर्तमान प्रोटोकॉल के बावजूद https: // निर्दिष्ट कर सकता हूं, ऐसा करने से यह अपर्याप्त होगा क्योंकि मुझे वास्तव में इस छवि के संचरण को सुरक्षित रखने की परवाह नहीं है जब तक कि यह आवश्यक न हो (जब विज़िटर HTTPS का उपयोग कर रहा हो)।

क्या आईएमजी टैग की स्रोत विशेषता के लिए एक यूआरएल निर्दिष्ट करना संभव है जैसे यूआरएल में प्रोटोकॉल गतिशील रूप से वर्तमान पृष्ठ तक पहुंचने के लिए इस्तेमाल प्रोटोकॉल के आधार पर चुना गया है? इसका अर्थ यह है कि मेरा क्या मतलब है:

<img src="(JavaScript's window.location.protocol)//remotehost/path/to/a.png" alt="Image A" /> 

यदि हम जावास्क्रिप्ट का उपयोग करते हैं तो क्या होगा? हम आईएमजी टैग को एक आईडी दे सकते हैं ताकि हम इसका पता लगा सकें और src.location.protocol से शुरू करने के लिए src सेट कर सकें।

HTTP/HTTPS समस्या को पूरी तरह से बाईपास करने के लिए बेस 64 का उपयोग भी कर सकता है, लेकिन यह मेरे लिए आदर्श नहीं है।

आप लोग क्या सलाह दे सकते हैं?

उत्तर

21

बस कार्य करें:

<img src="//remotehost/path/to/a.png" alt="Image A" /> 
+3

थोड़ा विस्तार करने के लिए। पॉल आयरिश ने इस पर एक अच्छा [लेख] लिखा है (http://paulirish.com/2010/the-protocol-relative-url/)। – Matijs

+0

बहुत उपयोगी उत्तर। – gdmanandamohon

0

अगर फाइल लैन पर है आप फ़ाइल का उपयोग करने की जरूरत है: // प्रोटोकॉल 5 स्लैश जोड़ने से पहले पथ तो मेरे सर्वर नाम athensserver तो f://///athensserver/ (कुछ भी तुम यहाँ साझा) है

file://///athensserver/athens/0/e1.png" 
संबंधित मुद्दे