Anni fa, ho scritto la seguente funzione per uno dei miei Firefox add-on che mi aiuta a ottenere una specifica piattaforma carattere nuova riga:Come ottenere il carattere di nuova riga della piattaforma in 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";
}
Questo sembra funzionare bene, ma dopo aver letto la newline Wikipedia article, ho notato che i recenti sistemi operativi Apple (OS X e successivi) ora utilizzano lo stile UNIX \n
per terminare la riga. In quanto tale, la mia piccola funzione potrebbe restituire la cosa sbagliata per quel caso (non ho un Mac OS su cui testarlo).
C'è un modo per far sapere a Firefox quale è il carattere di nuova riga specifico della piattaforma? Forse una sorta di funzione di utilità incorporata? Sto usando questi newline nei file di testo scritti dalla mia estensione e voglio utilizzare quello specifico della piattaforma, in modo che i file sembrino appropriati su vari sistemi.
Aggiornamento (2013/02/13): Così mentre state usando la chiamata navigator.platform.toLowerCase()
funzione su un Mac-mini (OS X), ottengo il valore di uscita macintel
. Ciò comporterebbe la mia funzione restituendo \r
anziché \n
come dovrebbe.
Non la mia risposta, ma quella intelligente: http://stackoverflow.com/a/1156388/1883464 – runspired
Là è un'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)), ma come puoi vedere è obsoleto e, soprattutto, è solo per uso interno. – paa