DeprecationReportBody
DeprecationReportBody
接口是 Reporting API 的一部分,表示弃用报告的主体。
当在由 ReportingObserver
观察的文档中使用弃用功能(例如弃用的 API 方法)时,会生成弃用报告。除了对该 API 的支持外,接收有用的弃用警告还依赖于浏览器供应商为弃用功能添加这些警告。
构造函数
当 Report.Type
为 deprecation
时,DeprecationReportBody
的实例将作为 Report.body
的值返回。该接口没有构造函数。
实例属性
此接口还继承了 ReportBody
的属性。
DeprecationReportBody.id
实验性-
一个字符串,表示已弃用的功能或 API,例如
NavigatorGetUserMedia
。这可以用来按弃用功能对报告进行分组。 DeprecationReportBody.anticipatedRemoval
实验性-
一个
Date
对象(呈现为字符串),表示预期从当前浏览器中删除该功能的日期。如果日期未知,则此属性将返回null
。 DeprecationReportBody.message
实验性-
一个包含弃用情况的人类可读描述的字符串,包括有关哪些更新的功能(如果有)已取代它的信息。这通常与浏览器在使用弃用功能时在其 DevTools 控制台中显示的消息(如果可用)相匹配。
DeprecationReportBody.sourceFile
实验性-
一个包含使用弃用功能的源文件路径的字符串(如果已知),否则为
null
。 DeprecationReportBody.lineNumber
实验性-
一个表示在源文件中使用弃用功能的行号的数字(如果已知),否则为
null
。 DeprecationReportBody.columnNumber
实验性-
一个表示在源文件中使用弃用功能的列号的数字(如果已知),否则为
null
。
实例方法
此接口还继承了 ReportBody
的方法。
DeprecationReportBody.toJSON()
实验性-
一个序列化器,它返回
InterventionReportBody
对象的 JSON 表示形式。
示例
在我们的 deprecation_report.html 示例中,我们创建了一个简单的报告观察器来观察我们网页上弃用功能的使用情况
const options = {
types: ["deprecation"],
buffered: true,
};
const observer = new ReportingObserver((reports, observer) => {
reportBtn.onclick = () => displayReports(reports);
}, options);
然后,我们告诉它使用 ReportingObserver.observe()
开始观察报告;这告诉观察器开始在其报告队列中收集报告,并运行构造函数中指定的回调函数
observer.observe();
由于我们在 ReportingObserver()
构造函数内部设置了事件处理程序,因此我们现在可以单击按钮来显示报告详细信息。
报告详细信息通过 displayReports()
函数显示,该函数将观察器回调的 reports
参数作为其参数
function displayReports(reports) {
const outputElem = document.querySelector(".output");
const list = document.createElement("ul");
outputElem.appendChild(list);
reports.forEach((report, i) => {
const listItem = document.createElement("li");
const textNode = document.createTextNode(
`Report ${i + 1}, type: ${report.type}`,
);
listItem.appendChild(textNode);
const innerList = document.createElement("ul");
listItem.appendChild(innerList);
list.appendChild(listItem);
for (const [key, value] of Object.entries(report.body)) {
const innerListItem = document.createElement("li");
innerListItem.textContent = `${key}: ${value}`;
innerList.appendChild(innerListItem);
}
});
}
reports
参数包含观察器报告队列中所有报告的数组。我们使用基本的 for
循环遍历每个报告,然后使用 for...in
结构迭代报告主体(DeprecationReportBody
实例)中的每个条目,在列表项内显示每个键/值对。
规范
规范 |
---|
弃用报告 # deprecationreportbody |
浏览器兼容性
BCD 表格仅在浏览器中加载