Javascript 如何使用用户PC上已安装的字体在我的应用程序中呈现文本项?

Javascript 如何使用用户PC上已安装的字体在我的应用程序中呈现文本项?,javascript,filesystemobject,Javascript,Filesystemobject,我在我的应用程序中有一个文本“name”,我希望使用安装在用户PC(本地)上的字体设置样式,我将使用类似filesystemobject的函数获取该字体。类似这样的代码(这只是一个指示性代码,仅用于首先获取文件名。) 函数ShowFolderFileList() { 变量fso、f、f1、fc、s; fso=新的ActiveXObject(“Scripting.FileSystemObject”); f=fso.GetFolder(“我的文件夹”); fc=新枚举数(f.files); s=“

我在我的应用程序中有一个文本“name”,我希望使用安装在用户PC(本地)上的字体设置样式,我将使用类似filesystemobject的函数获取该字体。类似这样的代码(这只是一个指示性代码,仅用于首先获取文件名。)


函数ShowFolderFileList()
{
变量fso、f、f1、fc、s;
fso=新的ActiveXObject(“Scripting.FileSystemObject”);
f=fso.GetFolder(“我的文件夹”);
fc=新枚举数(f.files);
s=“”;
对于(;!fc.atEnd();fc.moveNext())
{
s+=fc.item();
s+=“
”; } 文件。书写; }

我尽可能多地试着解释我的问题。如果需要更多详细信息,请发表评论。我将提供有关您的查询的更多信息。

您可以轻松访问用户导航器中嵌入的字体,称为“web安全字体”。这些经典字体应该可以广泛使用,跨操作系统。完整的“网络安全字体”列表可通过谷歌获得:)

要使用其中之一,只需使用CSS规则,如: p{font家族:“新罗马时代”}

我相信你会期待更具体的字体,据我所知,你不能通过javascript列出安装在用户PC上的字体。这可能需要闪光灯。但是,我发现这段代码可以说明用户计算机上是否安装了字体,这可能符合您的目标

/**
*JavaScript代码,用于检测
*使用JavaScript和CSS的浏览器中的特定字体。
*
*作者:Lalit Patel
*网站:http://www.lalit.org/lab/javascript-css-font-detect/
*许可证:Apache软件许可证2.0
*          http://www.apache.org/licenses/LICENSE-2.0
*版本:0.15(2009年9月21日)
*将比较字体从SAN默认更改为默认,
*在FF3.0中,子元素的字体没有回退
*如果缺少字体,则返回父元素。
*版本:0.2(2012年3月4日)
*将字体与所有3个通用字体系列进行比较,
*“monospace”、“sans serif”和“sans”。如果它不匹配所有3个
*那么该字体在系统中100%不可用
*版本:0.3(2012年3月24日)
*将基本字体列表中的sans替换为衬线
*/
/**
*用法:d=新检测器();
*d.检测(“字体名称”);
*/
变量检测器=函数(){
//字体将与所有三种默认字体进行比较。
//如果它不匹配所有3种字体,则该字体不可用。
var baseFonts=['monospace','sans serif','serif'];
//我们使用m或w,因为这两个字符占据了最大宽度。
//我们使用一个LLi,这样相同的匹配字体就可以分开
var testString=“mmmmlli”;
//我们测试使用72px字体大小,我们可以使用任何大小。我想越大越好。
var testSize='72px';
var h=document.getElementsByTagName(“正文”)[0];
//在文档中创建一个跨度,以获取用于测试的文本的宽度
var s=document.createElement(“span”);
s、 style.fontSize=testSize;
s、 innerHTML=testString;
var defaultWidth={};
var defaultHeight={};
for(baseFonts中的var索引){
//获取三种基本字体的默认宽度
s、 style.fontFamily=基本字体[索引];
h、 儿童;
defaultWidth[baseFonts[index]=s.offsetWidth;//默认字体的宽度
defaultHeight[baseFonts[index]=s.offsetHeight;//定义字体的高度
h、 移除儿童;
}
功能检测(字体){
检测到的var=假;
for(baseFonts中的var索引){
s、 style.fontFamily=font+','+baseFonts[index];//字体的名称以及用于回退的基本字体。
h、 儿童;
var matched=(s.offsetWidth!=defaultWidth[basefont[index]]| | s.offsetHeight!=defaultHeight[basefont[index]];
h、 移除儿童;
检测到=检测到| |匹配;
}
检测到返回;
}
this.detect=detect;

};你所说的“用户PC中的字体”是什么意思。没有一种字体。谷歌表示“css字体系列”。如果你不使用webfont,浏览器将使用本地字体。
  <html>
  <head>

  <script>    

  function ShowFolderFileList()
  {
  var fso, f, f1, fc, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f = fso.GetFolder("My Folder");
  fc = new Enumerator(f.files);
  s = "";
  for (; !fc.atEnd(); fc.moveNext())
  {
  s += fc.item();
  s += "<br>";
  }
  document.write(s);
  } 
  </script>


  </head>

  <body>   

  <form name="myForm">
  <input type="Button" value="Get File" onClick='ShowFolderFileList'>

  </form>
  </body>
  </html>