在 IE9 中使用 JavaScript 创建 GUID? [复制]

Posted

技术标签:

【中文标题】在 IE9 中使用 JavaScript 创建 GUID? [复制]【英文标题】:Create GUID with JavaScript in IE9? [duplicate] 【发布时间】: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 平台。它不必支持其他浏览器或操作系统。

谢谢!

【问题讨论】:

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

在 Google 上进行简单搜索后,我就可以找到 *** 上的 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,我会选择这个解决方案。

以上是关于在 IE9 中使用 JavaScript 创建 GUID? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

IE9兼容性视图Javascript问题

如何在 IE9 中使用 JQuery 设置选择框的默认值?

IE9:悬停故障

IE9 javascript 问题的占位符脚本

Internet Explorer浏览器版本用户代理的Javascript重定向?

JavaScript:如果它处于 IE7 或 IE8 兼容模式,我可以检测到 IE9 吗?