Mam do czynienia z następującym problemem: Mam dokument HTML, w którym chcę wydrukować podstawowe komunikaty o statusie/debugowanie/etc.Wprowadź nową linię ( n) z innerHTML w pre elementu w IE nie działa?
Tak, dokument HTML zawiera pusty wstępny element, którego identyfikator jest się:
<body onload='init() && main();'>
<pre id='out'>
</pre>
</body>
</html>
init() funkcja przypisuje wstępnie elementu do zmiennej:
var out_div;
function init() {
out_div = document.getElementById('out')
return 1;
}
Następnie , aby wydrukować coś w pre-div, używam tej funkcji:
function txt_out(txt) {
out_div.innerHTML += "\n" + txt
}
Nowa linia powinna upewnić się, że każde wywołanie txt_out jest zapisane we własnym wierszu. Działa to zgodnie z oczekiwaniami w przeglądarce Firefox. Jednak IE nie zwraca uwagi na \ n. Czy to nie tak ze strony IE, czy robię coś nie tak?
tylko
EAK to – Amarghosh
Tak to się dzieje na części IE. IE usuwa początkowe białe znaki podczas ustawiania innerHTML: http://bytes.inso.cc/wp/2009/11/07/internet-explorer-strips-leading-whitespaces-in-text-nodes/ Biblioteki mogą pomóc w złagodzeniu tego (jQuery I know robi to za pomocą metody '.html()'). –
W razie wątpliwości IE nie ma racji. –