2013-01-21 38 views
5

मैंने अन्य चर्चाओं को संदर्भित किया जो समान रेखाओं पर हैं। उस चर्चा के लिए लिंक यहां दिया गया है।आईई 8 प्री टैग समस्याएं

code inside pre goes in one line on IE8

बाहरी एचटीएमएल ठीक काम करता है। लेकिन मेरी आवश्यकता आंतरिक HTML के लिए है। बाहरी HTML का उपयोग न करने का कारण यह है कि मैं AngularJS का उपयोग कर रहा हूं जिसमें HTML पर स्थितियां हैं। इसलिए मुझे सामग्री को आंतरिक HTML में जोड़ना होगा।

यहां HTML है।

<p ng-show="preview=='text' && !file.showUploadPanel && file.fileContent!='null' && file.fileContent!='undefined'" ng-bind-html-unsafe="file.fileContent" class="pre fileContent"></p> 

यहां जेएस है जो इसका समर्थन कर रहा है।

var elem = $(".pre.fileContent")[1]; 
if (elem.tagName == "P" && "innerHTML" in elem){ 
    elem.innerHTML = "<pre>" + elem.innerHTML + "</pre>"; 
} 

मैं भी गुंजाइश चर जो "<pre>" + $scope.file.fileContent + "</pre>";

में जो परिणाम यहाँ त्रुटि है कि मैं IE8 पर हो रही है है के साथ "<pre>" + elem.innerHTML + "</pre>" की जगह की कोशिश की है।

Error: Unknown runtime errorundefined 

अगर मैं elem.innerHTML से <pre> हटाने त्रुटि नहीं होती है। साथ ही, बाहरी HTML के लिए, यह त्रुटि दिखाई नहीं देती है।

मुझे इससे कैसे निपटना चाहिए?

+0

दोस्तों, इसके लिए कोई जवाब नहीं है? – Abilash

उत्तर

2

ऐसा लगता है कि आप सामग्री को pre तत्व में लपेटने की कोशिश कर रहे हैं? यदि ऐसा है, तो आप बस यह कर सकते हैं:

var pre = document.createElement('pre'); 
while(elem.firstChild) pre.appendChild(elem.firstChild); 
elem.appendChild(pre); 

इसमें किसी भी संपत्ति मूल्य और ईवेंट हैंडलर रखने का अतिरिक्त बोनस है।

white-space:pre; 
font-family:monospace; 

संपादित करें:

वैकल्पिक रूप से, तुम सिर्फ प्रासंगिक तत्व को सीएसएस लागू हो सकते हैं सीएसएस समाधान बेहतर हो सकता है - मैं इसे <pre> के लिए मान्य है नहीं लगता है, एक ब्लॉक स्तर तत्व, अंदर एक <p> टैग।

1

माफ करना, मैं पैरा वर्ग चयनकर्ता के साथ उलझन में हूँ,

<p ng-show="preview=='text' && !file.showUploadPanel && file.fileContent!='null' && file.fileContent!='undefined'" ng-bind-html-unsafe="file.fileContent" class="pre fileContent"></p> 

<p> टैग के ऊपर दोनों वर्ग ".Pre" और ".filecontent" और आप चयनकर्ता $ के साथ कोशिश कर रहे हैं ("शामिल हैं। पूर्व .fileContent ") जो वर्ग" .pre "के साथ तत्व के अंदर वर्ग" .fileContent "के साथ तत्व की तलाश करता है।

मैं बस यह सुनिश्चित करना चाहता हूं कि यह सही है या गलती से टाइप किया गया है या नहीं। :)

समाधान:

पाठ क्षेत्र या स्रोत कंटेनर के अंदर सामग्री प्राप्त करें, द्वारा "\ n" और एक पाश के साथ स्ट्रिंग विभाजित सभी सरणी तत्वों के लिए <p> टैग जोड़ें।

var textVal = jQuery("#wmd-input").val(); 
textVal = textVal.split("\n"); 
var temp = ""; 
for (var i=0; i < textVal.length; i++) { 
    temp += "<p>" + textVal[i] + "</p>"; 
} 

/* Assing the temp html in your target div or container*/ 
2

मुझे वास्तव में जवाब स्वयं मिला। जैसा कि मैं AngularJS का उपयोग कर रहा हूं, मैंने गलत निर्देश ng-bind-html-unsafe का उपयोग किया था।मैंने ng-bind-html-unsafe को ng-bind पर स्विच किया, तो मेरी समस्या हल हो गई!

सभी को मेरी मदद करने के लिए धन्यवाद!