2013-06-02 2 views
3

В этом фрагменте, когда написано 'FirstText', тогда остальная часть первой строки пропускается. Тогда 'SecText' написано на 2-й линии:Ошибка обрыва строки JavaScript

<pre> 
<script> 
    function text(){ 
    document.write("FirstText \n SecText"); 
    } 
    text(); 
</script> 
</pre> 

Но когда я использую setInterval() на этой функции, слова записываются рядом друг с другом (строки не пропускаются).

Любые предложения?

+0

ли вам нужен другой \ п после SecText? –

+0

вам нужен
: 'document.write (« FirstText
SecText »);' – Utopik

ответ

8

Вы видите \n Создайте новую строку, потому что вы находитесь в теге <pre />; обычно вы должны использовать <br />, чтобы увидеть аналогичную новую линию за пределами <pre />.

Когда вы звоните document.write до того, как страница будет загружена, выход будет введен в место; поэтому вы увидите свой FirstText \n SecText, написанный в пределах <pre />.

Однако, когда это называется после загрузки страницы (в пределах setInterval), существующая страница очищается перед тем записывается результат; поэтому <pre /> удаляется, и вы больше не видите свою новую строку.

Как вы не закрывая document используя document.close(), последовательные вызовы document.write в вашем setInterval добавление к потоку документа, открытого первой итерация setInterval.

Вы можете исправить это, используя <br />, а не \n;

 <script> 
     function text(){ 
     document.write("FirstText <br /> SecText <br />"); 
     } 

     setInterval(text, 1000); 
    </script> 

Для получения дополнительной информации см https://developer.mozilla.org/en-US/docs/Web/API/document.write и document.write clears page

+0

Понятно, спасибо, спасибо, я это ценю =) – MattMoulson

Смежные вопросы