Jon*_*hop 6 javascript firefox newline firefox-addon
几年前,我为我的一个Firefox附加组件编写了以下函数,这有助于我获得一个特定于平台的换行符:
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";
}
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但在阅读换行维基百科的文章后,我注意到最近的Apple操作系统(OS X及更高版本)现在使用UNIX样式\n
行结尾.因此,我的小功能可能会为这种情况返回错误的东西(我没有Mac OS可以测试它).
有没有办法让Firefox告诉我特定于平台的换行符是什么?也许是某种内置的实用功能?我在我的扩展程序写入的文本文件中使用这些换行符,并且我想使用特定于平台的文件,以便文件在各种系统中看起来合适.
更新(2-13-2013):因此,navigator.platform.toLowerCase()
在Mac-mini(OS X)上运行函数调用时,我得到输出值macintel
.这将导致我的函数返回\r
而不是\n
应该返回.
这是我最终使用的:
GetNewLine: function()
{
var OS = Components.classes["@mozilla.org/xre/app-info;1"].
getService(Components.interfaces.nsIXULRuntime).OS;
return /winnt|os2/i.test(OS) ? "\r\n" : /mac/i.test(OS) ? "\r" : "\n";
}
Run Code Online (Sandbox Code Playgroud)
我非常确定“mac”情况永远不会发生,因为它没有在OS TARGET变量中列为可能性(我正在通过OS
中的属性进行测试nsIXULRuntime
)。
归档时间: |
|
查看次数: |
1255 次 |
最近记录: |