2016-05-06 4 views
5

मेरे पास एक HTML स्ट्रिंग है, जिसे मेरे उदाहरण में tinymceToHTML कहा जाता है और मुझे समस्या थी कि जब मैं यह HTML डाउनलोड करता हूं तो छवियों के स्रोतों को स्ट्रिंग या href गलत तरीके से सेट किया गया था।डोम ऑब्जेक्ट में खुद को एक चर निर्दिष्ट करने से एक अंतर

मेरे छवि स्रोत मूल स्ट्रिंग में "/ file /: id" जैसा दिखते हैं, अगर मैं इसे एक DOM ऑब्जेक्ट में परिवर्तित करता हूं और स्रोत को आउटपुट करता हूं तो यह "http://localhost:3000/file:id" जैसा दिखता है, जो बाहरी आउटपुट होता है, क्योंकि बाहरी दस्तावेज़ इस फाइल को लोड कर सकते हैं। तो मैं इस समाधान के साथ आया था।

 var div = document.createElement('div'); 
 
     div.innerHTML = tinymceToHTML; 
 
     var images = div.getElementsByTagName('img'); 
 
     for(var i = 0; i < images.length; i++) { 
 
      images[i].src = images[i].src; 
 
     } 
 
     var a = div.getElementsByTagName('a'); 
 
     for(var i = 0; i < a.length; i++) { 
 
      a[i].href = a[i].href; 
 
     } 
 
     tinymceToHTML = "<html><head></head><body>" + div.innerHTML + 
 
         "</body></html>";

मेरे समस्या यह है कि मैं क्यों अपने आप को चर बताए नहीं जानता है कि परिदृश्य में एक फर्क नहीं पड़ता: छवियों [i] .src = छवियों [i] .src या एक [i] .href = a [i] .href।

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

मुझे उम्मीद है कि कोई भी मुझे उस प्रभाव को समझा सकता है, ताकि कोड को बदलने के लिए यह स्पष्ट हो सके कि यह लाइन आवश्यक है।

मैं भी एक बेला उदाहरण यह आसान दिखाने के लिए मैं क्या मतलब है कि बनाता है, काम के साथ लाइन बाहर टिप्पणी, अन्य परिणाम

https://jsfiddle.net/1vabgubh/5/

उत्तर

3

एक छवि के पूर्ण URL देखने के लिए बनाया परिभाषा के अनुसार, imageElement.src वापस क्या है। MDN से:

HTMLImageElement.src एक DOMString कि src एचटीएमएल विशेषता को दर्शाता है, आधार यूआरआई सहित छवि के पूर्ण URL युक्त है।

यदि आपको अपनी अंतिम स्ट्रिंग में आने के लिए उनकी आवश्यकता है, तो images[i].src = images[i].src ऐसा करने का एक उचित और संक्षिप्त तरीका प्रतीत होता है। मैं तो बस, कुछ की तरह

images[i].src = images[i].src; // force the src to be the full URI 
+0

आपको बहुत बहुत धन्यवाद, हाँ मैं अगर वहाँ कोई ऐसा जो कार्यक्रम बनाए रखेंगे, बस इसे या कुछ को नष्ट करेगा हो जाएगा बकवास और अन्य डेवलपर्स कर से बचना चाहता था समझ सहायता करने के लिए एक टिप्पणी जोड़ना होगा उसके जैसा :)। मैं उस टिप्पणी का उपयोग करूंगा जो आपने मुझे स्रोत कोड के लिए दिया था। – FroZenViper

संबंधित मुद्दे