You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Internet Explorer中使用CoinHive时出现的SCRIPT5022: SecurityError?

解决IE中CoinHive的SecurityError问题

这个错误的核心原因是Internet Explorer对Web Worker的加载机制有严格限制——它不允许从Blob URL(也就是CoinHive.CRYPTONIGHT_WORKER_BLOB生成的URL)加载Worker脚本,必须使用同源的外部脚本文件。下面是具体的解决步骤:

1. 提取Worker脚本内容

首先,你需要把CoinHive的Cryptonight Worker脚本从Blob里提取出来。可以在正常运行的浏览器(比如Chrome、Firefox)中操作:

  • 打开浏览器控制台,输入这段代码并执行:
    fetch(CoinHive.CRYPTONIGHT_WORKER_BLOB).then(res => res.text()).then(console.log)
    
  • 控制台会输出Worker的完整JS代码,把这段代码复制下来,保存为一个单独的文件,比如cryptonight-worker.js。

2. 修改CoinHive的初始化逻辑

接下来,通过浏览器检测,让IE环境加载你保存的外部Worker文件,其他浏览器保持原有Blob加载逻辑:

// 检测当前是否为IE浏览器
function isIE() {
  return window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;
}

// 针对IE替换Worker加载源
if (isIE()) {
  // 替换成你保存的worker文件的同源路径,比如当前域名下的/js/cryptonight-worker.js
  CoinHive.CRYPTONIGHT_WORKER_BLOB = '/path/to/cryptonight-worker.js';
}

// 正常初始化CoinHive
var miner = new CoinHive.Anonymous('你的站点密钥');
miner.start();

3. 确保Worker文件同源

务必保证cryptonight-worker.js和你的网页处于同一域名下(同源),IE不允许Worker加载跨域脚本,否则依然会触发安全错误。

额外提示

  • 这种兼容方式只会影响IE,其他浏览器仍能正常使用Blob加载,不会破坏原有功能。
  • 如果CoinHive更新了Worker脚本,记得同步更新你本地保存的cryptonight-worker.js文件。

内容的提问来源于stack exchange,提问作者user9678848

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:37:22