使用 Web Inspector 更改 iOS 上的页面设置
如果您曾使用过 Web Inspector,很可能您用过(或至少熟悉)**开发**菜单。它包含浏览器的各种设置的操作项和开关,例如是否可以加载本地文件(例如以file://
开头的 URL),或者是否将 CSS 应用于每个页面。

所有这些项都适用于整个浏览器,这意味着如果您在一个页面上**禁用样式**,所有其他页面都将受到影响。
此外,当使用 Web Inspector 检查远程目标(如 iOS 设备或模拟器)时,这些项无效。在**开发**菜单中勾选**禁用样式**不会对远程目标产生任何影响。
为了支持这种开发工作流程,Web Inspector 增加了一个设备设置菜单,允许在远程检查时按页面切换这些设置。
点击设备设置菜单图标将显示一个弹出窗口,其中包含许多与**开发**菜单相同的设置。

由于这些设置是按页面且仅在远程目标上生效,因此**开发**菜单中相应的操作被禁用,因为它们对远程目标无效。
- 禁用图像
- 禁用样式
- 禁用 JavaScript
- 禁用特定网站的变通方案
- 禁用跨域限制
- WebRTC
- 允许在不安全站点上捕获媒体
- 禁用 ICE 候选限制
- 使用模拟捕获设备
同样地,设备设置菜单仅在使用 Web Inspector 检查远程目标时显示。
设备设置在 Web Inspector 会话之间不保留。关闭 Web Inspector(或断开检查设备的连接)将导致被检查页面的所有先前设置的设备设置重置。
但是,只要 Web Inspector 保持打开/连接状态,设备设置就会在导航之间保留。
用户代理
设备设置菜单中的第一项是**用户代理**编辑器。它包含一个常用用户代理列表,以及一个输入自定义用户代理的选项(其他…)。
每次修改**用户代理**时,被检查的页面将自动重新加载,以便应用新的**用户代理**。
禁用开关
这些开关中的每一个,在勾选后,都会禁用被检查页面中的特定功能。
- 图像将阻止任何尚未加载的图像加载,但对任何已加载的图像无效。
- 样式将立即禁用页面上的所有 CSS,包括内联
<style>
标签和任何style
DOM 属性。 - JavaScript 将导致页面忽略任何未来运行的 JavaScript,包括新的
<script>
元素(甚至不请求底层资源)和先前添加的事件监听器的回调。 - 特定网站的变通方案控制 WebKit 是否为了支持某些站点的兼容性而进行变通处理。
- 这些站点的列表可以在Source/WebCore/page/Quirks.cpp中找到。
- 如果您开发的站点在该列表中,我们强烈建议在**特定网站的变通方案**禁用的情况下进行开发和测试。
- 跨域限制控制 CORS 规则/限制是否对任何未来的网络请求生效。
WebRTC 开关
这些开关专门针对与WebRTC相关的功能。
- 允许在不安全站点上捕获媒体将允许在不安全(例如非 HTTPS)页面上使用/测试WebRTC 媒体捕获,用于任何未来的
getUserMedia
调用。 - 禁用 ICE 候选限制将阻止对新连接尝试进行主机 ICE 候选过滤。
- 使用模拟捕获设备将用模拟“Bip-Bop”设备替换所有捕获设备,用于任何未来的
getUserMedia
调用。
- 禁用加密将导致未来的连接建立,以及(来自这些连接的)未来流在不进行任何形式加密的情况下传输。
反馈
您可以在 iOS 12.2 或更高版本上尝试更改设备设置。请告诉我们您的使用体验。通过 Twitter (@webkit, @dcrousso) 或提交错误报告提供反馈。