lat temu napisałem następującą funkcję dla jednego z moich Firefox dodatki, które pomaga mi uzyskać platformy specyficzny charakter nowej linii:Uzyskiwanie znaku nowej linii w 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";
}
to wydaje się działać OK, ale po przeczytaniu newline Wikipedia article odnotowałem, że ostatnie systemy operacyjne Apple (OS X i nowsze) teraz używają zakończenia linii w stylu UNIX \n
. W związku z tym moja mała funkcja może zwracać niewłaściwe rzeczy w tej sprawie (nie mam systemu Mac OS, na którym można go przetestować).
Czy mogę w jakiś sposób przekonać Firefoksa, jaki jest znak nowej linii? Być może jakiś rodzaj wbudowanej funkcji użyteczności? Używam tych linii w plikach tekstowych zapisanych przez moje rozszerzenie i chcę użyć tej specyficznej dla platformy, aby pliki wyglądały odpowiednio w różnych systemach.
Aktualizacja (13.02.2013): Więc po uruchomieniu połączenia navigator.platform.toLowerCase()
funkcji w Mac mini (OS X), pojawia się wartość wyjściową macintel
. Spowoduje to, że moja funkcja powróci \r
zamiast \n
, tak jak powinna.
Nie moja odpowiedź, ale inteligentna: http://stackoverflow.com/a/1156388/1883464 – runspired
There jest 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)), ale jak widać, jest nieaktualny, a co ważniejsze, jest przeznaczony tylko do użytku wewnętrznego. – paa