Несколько лет назад я написал следующую функцию для одного из моих Firefox дополнения, которые помогают мне получить от платформы символ новой строки:Получение специфического символа новой строки в JavaScript?
GetNewLine: function()
{
var platform = navigator.platform.toLowerCase();
if(platform.indexOf('win') != -1) // Windows
return "\r\n";
else if(platform.indexOf('mac') != -1) // Mac
return "\r";
else // *nix
return "\n";
}
Это, кажется, работает нормально, но при чтении newline Wikipedia article, я отметил, что последние операционные системы Apple (OS X и более поздние версии) теперь используют стиль линии UNIX \n
. Таким образом, моя маленькая функция может возвращать неправильную вещь для этого случая (у меня нет Mac OS, на которой можно ее протестировать).
Есть ли способ заставить Firefox рассказать мне, что такое символ новой строки? Возможно, какая-то встроенная функция полезности? Я использую эти строки в текстовых файлах, которые пишет мой внутренний номер, и я хочу использовать конкретную платформу, чтобы файлы выглядели соответствующими в разных системах.
Update (2-13-2013): Так на вызов работает на navigator.platform.toLowerCase()
функцию на Mac-мини (OS X), я получаю значение macintel
вывода. Это приведет к тому, что моя функция вернет \r
вместо \n
, как и следовало ожидать.
Не мой ответ, а умный: http://stackoverflow.com/a/1156388/1883464 – runspired
Там является API ([nsLinebreakConverter.cpp] (http://mxr.mozilla.org/mozilla-central/source/xpcom/io/nsLinebreakConverter.cpp) [nsLinebreakConverter.h] (http://mxr.mozilla.org/ mozilla-central/source/xpcom/io/nsLinebreakConverter.h)), но, как вы можете видеть, он устарел, и, что более важно, он предназначен только для внутреннего использования. – paa