首页 > 教程资讯 > 教程详情

Chrome 158 将于 11 月 17 日停止套用 XSLT,XML 页面改为显示警告和原始标签

软件与互联网 老K说软件 2026-10-19
文章分享

xmlnest 的指南称,自 2026 年 11 月 17 日起,Chrome 稳定版将不再对 XML 页面套用 XSL 样式表。依赖浏览器端 XSLT 排版的页面,届时会显示警告和原始 XML 标签,而不是已经排好的页面。XSLT 是一种用 XML 文件所指向的 XSL 样式表,把 XML 文档转成可读页面的语言,Chrome 正在移除这项能力。受影响的用法包括 WordPress 自 5.5 起带 XSL 样式的站点地图,以及在浏览器中直接打开、靠样式表变得可读的 RSS 与 Atom 源。

从弃用到全部关闭

据 xmlnest 引述的 Chrome 公告,调整分三步。Chrome 143 于 2025 年 12 月 2 日正式弃用 XSLT,开发者控制台和 Lighthouse 会出现警告。Chrome 158 于 2026 年 11 月 17 日在稳定版停止 XSLT,来源试用和企业策略的参与者除外。Chrome 176 于 2027 年 8 月 17 日起,来源试用与企业策略 XSLTEnabled 失效,XSLT 对所有用户禁用。Chrome Beta、Dev 和 Canary 从 Chrome 145 起已默认禁用 XSLT,作为提前预警。

Chrome 公告给出的理由是安全:执行这些转换的库(例如 libxslt)是复杂的 C 与 C++ 代码,这类代码容易出现缓冲区溢出等内存安全漏洞。Chrome 称,仅约 0.02% 的网页加载用到 XSLT,使用 XSLT 处理指令(XML 文件中指向样式表的那一行)的不足 0.001%。

哪些页面会变,打开后看到什么

指南点出几类相对集中的页面。WordPress 自 5.5 起在 /wp-sitemap.xml 提供站点地图索引,并附带 XSL 样式表,为全部站点地图设置样式。Chrome 指出,不少既有的 RSS 与 Atom 源用 XSLT,使人直接在浏览器中打开源时看到可读内容。Chrome 还提到,一些商用设备会在局域网为用户生成 XML,而且许多这类设备很难或无法更新;对此,Chrome 指向浏览器扩展。

XSLT 关闭后,样式表不再套用,它生成的表格、标题和可点击链接都会消失。据 Chrome 公告,Chrome 会显示一条警告横幅,链接到 Chrome 网上应用店对“xslt polyfill”的搜索,便于寻找扩展。xmlnest 在关闭 XSLT 的 Chromium 156 中查看:链接了 XSL 样式表的 XML 页面显示“This document cannot be formatted as intended”,随后是没有版式的原始 XML,也就是文件中的标签和文本。

访客、站长和企业可以怎么做

xmlnest 整理的选项包括:访客安装 Chrome 公告所链接的官方扩展 XSLT Polyfill,或安装独立扩展 XMLNest;站长在站点加入 xslt-polyfill 脚本,或在服务器上完成 XSLT 转换后下发 HTML;也可以改为提供 JSON,再用页面中的 JavaScript 渲染。管理 Chrome 的 IT 团队可以使用企业策略 XSLTEnabled,把浏览器端 XSLT 保留到 Chrome 176,即 2027 年 8 月 17 日。来源试用则让站点在 2026 年 11 月 17 日之后继续使用 XSLT,直到同一天发布的 Chrome 176。指南称,Chrome 公告没有为日常用户提供在设置中重新打开 XSLT 的开关;自 Chrome 158 起,XSLT 只对来源试用中的站点,以及启用了 XSLTEnabled 的受管浏览器继续有效,两者都在 Chrome 176 结束。在此之前,访客若要再次看到排好版的页面,扩展是指南所称的简单办法。访客改不了网站,扩展只在自己的浏览器里重新套用样式表;站长则可以一次修好所有访客看到的页面。

官方扩展 XSLT Polyfill 把开源库 xslt-polyfill 用到带 XSLT 的原始 XML 页面上。XMLNest 是 Chrome 网上应用店中的独立扩展,使用同一个开源库,并不是官方扩展。两者都在浏览器本地处理页面。按 xmlnest 对扩展商店页面和 Chrome-Stats 的转述:官方扩展在安装时访问全部站点,并支持使用 XSLTProcessor 的 JavaScript;XMLNest 默认不取得全站访问权限,可以一键对所有站点打开,或按站点打开,也不提供 XSLTProcessor。对没有样式表的 XML,其商店页面称官方扩展不做处理,XMLNest 则提供可折叠树、搜索、源码视图,以及针对源和站点地图的阅读视图。xmlnest 称两者均免费。XMLNest 还会拦住转换后页面里的脚本,除非用户对该站点允许运行。

xslt-polyfill 的 README 说明,脚本元素要作为 XML 根元素的子节点,放在指向样式表的那一行之后,并带上 XHTML 命名空间的 xmlns 属性才能运行。该 polyfill 只实现 XSLT 1.0;对更新的 XSLT,README 指向 SaxonJS。针对源,Chrome 建议在站点的 HTML 页面中加入 rel 为 alternate、type 为 application/rss+xml 的 link 元素,或把 polyfill 脚本加进源本身。

据 Chrome 公告,Firefox 与 WebKit 项目也已表示计划从各自的浏览器引擎中移除 XSLT。指南注明,WebKit 是 Safari 背后的引擎,并建议在依赖某一浏览器继续支持 XSLT 之前,先查看该浏览器自己的说明。

来源