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

ASP.NET Core 6中Edge浏览器Bootstrap Popover报sanitizeFn类型错误求助

Edge中Bootstrap Popover sanitizeFn类型错误的解决办法

错误原因

这个Edge专属错误的核心是全局环境里的sanitizeFn变量被意外覆盖成了window对象。Bootstrap 4的Tooltip/Popover组件初始化时,会严格校验sanitizeFn的类型,要求它必须是null或函数类型,一旦检测到类型为window就会抛出类型错误。

你之前尝试关闭sanitize选项无效,是因为即便关闭sanitize功能,Bootstrap仍然会读取并校验sanitizeFn的类型,只要全局的sanitizeFn被污染,错误就会触发。这种污染通常来自Edge的第三方扩展注入,或是该版本Edge的内置特性意外污染了全局命名空间。

解决办法

1. 初始化时显式指定sanitizeFn

在调用popover()初始化组件时,直接传入sanitizeFn参数,覆盖被污染的全局值:

// 不需要自定义 sanitize 逻辑时,直接设为 null
$('[data-toggle="popover"]').popover({
  sanitizeFn: null
});

如果需要保留内容 sanitize 功能,可以使用Bootstrap内置的 sanitize 函数:

$('[data-toggle="popover"]').popover({
  sanitizeFn: $.fn.tooltip.Constructor.Default.sanitizeFn
});

2. 排查Edge扩展冲突

关闭Edge的所有第三方扩展,重新加载页面验证错误是否消失。如果错误消失,再逐一开启扩展,找出导致冲突的那个,将其禁用或更新到最新版本。

3. 升级Bootstrap及Popper.js版本

Bootstrap 4.3.1属于旧版本,后续的4.6.x版本修复了不少这类兼容性问题。替换原引用为兼容的稳定版本:

<!-- 可选升级jQuery到兼容的最新版 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<!-- 替换Popper.js为Bootstrap 4.6.x兼容的版本 -->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<!-- 替换Bootstrap为4.6.x最新稳定版 -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js"></script>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:36:22