Internet Explorer 8 не может заменить новую строку, в то время как Internet Explorer 9, Firefox и Chrome могут? - PullRequest
1 голос
/ 21 ноября 2011

На моем сайте у меня есть большое количество изображений с сопровождающим текстом, отправленных с сервера как php json_encode($object), например:

<script type="text/javascript">
   var jsonimgs = '[["90","1","Foraeldreforeningens Chris McDonald-arrangement i aulaen ma. 10. oktober 2011 \nFotos: Silas Staal ","cmd13.jpg","15","0"],["91","2","Foraeldreforeningens Chris McDonald-arrangement i aulaen ma. 10. oktober 2011\nFotos: Silas Staal ","cmd1.jpg","15","1"],["92","3","Foraeldreforeningens Chris McDonald-arrangement i aulaen ma. 10. oktober 2011\nFotos: Silas Staal ","cmd2.jpg","15","2"]]';
   jsonimgs = jsonimgs.replace(/(\r\n)|(\n)/g, '<br />');
   var images = jQuery.parseJSON(jsonimgs);
</script>

Этот объект изображения используется в пространстве JavaScript для обработки навигации между изображениями.

Как видите, я заменяю все новые строки тегом <br>, потому что в противном случае исключение выдается функцией .parseJSON, а переменная images не создается.

Это прекрасно работает в Internet Explorer 9, последней версии Firefox и Google Chrome. Но когда я пытаюсь запустить его в Internet Explorer 8, он не работает. Я предполагаю, что Internet Explorer 8 по какой-то причине не заменяет теги новой строки, и поэтому функция .parseJSON не работает, и поэтому переменная images не создается.

Итак, мой вопрос: как я могу гарантировать, что переменная images всегда создается во всех браузерах, независимо от того, какой тип символов может быть в переменной $images, отправленной с сервера?

С уважением.

...