如何检查浏览器是否支持 iframe 沙盒?

How can I check if the browser supports iframe sandboxing?

我有一些用户生成的 HTML 和 CSS。如果浏览器不支持 iframes 上的沙箱 属性,我想我应该向用户显示没有 CSS 或 JS 的已清理 HTML,这是阻止 JS 从 运行 开始的原因CSS 选择我页面的一部分。

那么如何检查是否支持沙箱属性?

我找到了有关如何执行此操作的有用 article

这是从与您的问题相关的文章中获得的代码片段:

function elementSupportsAttribute(element, attribute) {
  var test = document.createElement(element);
  if (attribute in test) {
    return true;
  } else {
    return false;
  }
};

if (elementSupportsAttribute("iframe", "sandbox") {

} else {
   // fallback
}

旁注iframe 中的 sandbox 属性被几乎所有浏览器支持,除了最新版本的 Opera Mini。大约 98% 网络用户的浏览器将能够支持此属性,因此从技术上讲,您不必担心不支持此属性的浏览器,尽管您始终可以这样做以确保安全。