当我进行故障排除时,我曾经使用移动 Safari 的“调试控制台”打印出 console.log 消息。在 iOS 6 中,在 Safari 的高级设置中,“Web Inspector”取代了“Debug Console”。不幸的是,我的公司不允许我将我们正在测试的手机插入我们正在开发的计算机上。
有谁知道如何启用使用 console.log() 打印的消息以显示在 iOS 6 的 iPhone 上?
我发现在window.onerror上输出任何带有警报的 JS 错误很有帮助->
window.onerror = function(error) {
alert(error);
};
我将其粘贴到脚本的顶部,以便在本机警报中输出任何运行时错误。也适用于桌面。
他们删除了它。您现在需要通过 Safari 进行调试。
http://www.mobilexweb.com/blog/iphone-5-ios-6-html5-developers
它实际上很容易设置。
1) 确保您的 Web Inspector 设置已在 iPhone 设置 => Safari => 高级下打开。
2) 将手机插入 Mac OSX 计算机。
3) 打开 Safar 6 并确保开发模式在 Safari Preferences => Advanced => Show Develop Menu
如果您没有 Mac OSX,您可以使用此脚本作为控制台替换:
https://github.com/robotnic/waterbug
它显示错误消息,可以记录各种变量,您必须将 iPhone 或 iPad 向右旋转 90° 才能打开控制台。
另一个可能的选择是 Steve Souders 的移动性能书签。它包括 Firebug Lite,它有一个控制台和更多功能。它的工作方式与以前的 Mobile Safari 控制台不同,您必须连接才能使用它。
只需在屏幕底部创建您自己的控制台。这是一个快速的解决方案,但它比到处发出警报要好。确保将其放入根 html 文件(底部)或转换为所有 JS 并放入根 JS 文件(顶部)。
<div id="console"></div>
<style media="screen">
#console {
resize: both;
height :200px;
overflow: scroll;
background: white;
color: black;
border: 1px solid black;
width: 95vw;
padding: 5px;
margin: auto;
}
</style>
<script type="text/javascript">
logger = (...params) => {
const newLog = document.createElement("div");
newLog.textContent = params.reduce((str, param) => {
if (typeof param === 'string') return `${str} ${param}`;
return `${str} ${JSON.stringify(param)}`;
}, '');
document.getElementById('console').appendChild(newLog);
}
window.onerror = (error) => {
const newLog = document.createElement("div");
newLog.style.color = 'red';
newLog.textContent = error;
document.getElementById('console').appendChild(newLog);
};
console.log = logger;
console.warn = logger;
</script>