【问题标题】:Create GUID with JavaScript in IE9? [duplicate]在 IE9 中使用 JavaScript 创建 GUID? [复制]
【发布时间】:2012-05-03 18:40:57
【问题描述】:

可能重复:
How to create a GUID / UUID in Javascript?
JavaScript: how to generate UUID for Internet Explorer 9?

有没有办法在 IE9 的 javascript 中创建 GUID,完全依赖于 Windows 平台。它不必支持其他浏览器或操作系统。

谢谢!

【问题讨论】:

  • 我认为这与浏览器无关。看看这个:stackoverflow.com/questions/105034/…
  • "它不必支持其他浏览器或操作系统"
  • 似乎没有任何研究工作:bit.ly/Jz30et
  • 我见过这些问题。它们是实际的 GUID 吗?或者:它们是否“与”实际系统创建的 guid 一样好?
  • 感谢您的反对。我不是在寻找一种创建类似 GUID 的字符串的方法,而是一种进行系统调用以生成真正的 GUID 的方法。如果这不可能,我将使用@Kooilnc 提供的解决方案。

标签: javascript windows internet-explorer-9


【解决方案1】:

在 Google 上进行简单搜索后,我就可以找到 StackOverflow 上的 this answer。第一个结果。

这实际上是@Kooilnc 复制粘贴的内容。但是他没有粘贴第二部分:

但是,请注意在 cmets 中这些值不是真正的 GUID。无法在 Javascript 中生成真正的 GUID,因为它们依赖于浏览器不公开的本地计算机的属性。您需要使用特定于操作系统的服务,例如 ActiveX:http://p2p.wrox.com/topicindex/20339.htm

PS:我也建议看看这个库:node-uuid

【讨论】:

  • 反对的人可以谈谈吗?
【解决方案2】:

这是一个创建 UUID 的小方法 测试结果 UUID 之一here

var result = document.querySelector("#result");
result.textContent = '10 UUIDs\n---------------------------------------------\n';

for (var i = 0; i < 11; i += 1) {
  result.textContent += createUUID() + '\n';
}

function createUUID() { // RFC 4122-ish
  return Array.from(Array(32))
   .map((e, i) => {
     let someRandomValue = i === 12 ? 4 : (+new Date() + Math.random() * 16) % 16 | 0;
     return `${~[8, 12, 16, 20].indexOf(i) ? "-" : ""}${
       (i === 16 ? someRandomValue & 0x3 | 0x8 : someRandomValue).toString(16)}`;
   }).join("");
}
&lt;pre id="result"&gt;&lt;/pre&gt;

【讨论】:

  • 感谢您的回答。如果没有合理的方法获得真正的 GUID,我会选择这个解决方案。
猜你喜欢
  • 2014-06-15
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-08
  • 2010-09-30
相关资源
最近更新 更多