如何检查移动 safari 的窗口对象?
Posted
技术标签:
【中文标题】如何检查移动 safari 的窗口对象?【英文标题】:How can I inspect the window object for mobile safari? 【发布时间】:2011-09-06 14:05:05 【问题描述】:或者更具体地说是 window.navigator - 尝试转换为字符串不起作用,我也无法在控制台中探索它。
谢谢!
编辑:
console.log(window.navigator);
console.log(String(window.navigator));
console.log(JSON.stringify(window.navigator));
console.log(window.navigator.serialize());
还尝试通过套接字将所有这些变化发送到服务器并在那里记录它们。
输出要么是[object Navigator]
,要么是""
,或者什么都没有
【问题讨论】:
您究竟尝试了什么?我们需要看看你执行了什么代码。 编辑了更多信息,谢谢。 【参考方案1】:您也可以使用它来激活您设备上的 Firebug。我花了很多时间才找到这个。
http://martinkool.com/post/13629963755/firebug-on-ipad-and-iphone
【讨论】:
【参考方案2】:更新!!!在 OS X 上,您可以在 ios 模拟器和 iOS 6 设备上使用 Safari 网络检查器。
-
首先在 Safari 中启用开发者菜单。
接下来,在您的 iOS 设备(或模拟器)上启用远程调试。
Settings > Safari > Advanced > Web Inspector (ON)
返回设备上的 Safari。
返回您的计算机,单击“开发人员”菜单,然后选择您的
设备(例如 iPhone 模拟器、iPhone)
注意:只有当 Safari 处于活动状态并正在运行时,您才会在开发者菜单中看到您的设备。
享受吧!
【讨论】:
您还需要 iPhone 数据线。 @colllin 不一定。如果您的 MacOS 和 iPhone (WiFi) 在同一个网络上,则不需要电缆。我能够在 MacOS 上无线调试 iPhone Safari 控制台窗口【参考方案3】:这些输出看起来完全正确。例如,当我要求window.navigator
的字符串版本时,我正确地得到了
console.log(String(window.navigator));
"[object Navigator]"
另一方面,当我要求一个特定的值时,我得到(在 Chromium 中):
console.log(window.navigator.userAgent);
"Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (Khtml, like Gecko) Chrome/11.0.696.71 Safari/534.24"
当我尝试枚举所有项目时,我得到了
for (var i in window.navigator) console.log(i);
language
product
mimeTypes
appVersion
plugins
onLine
platform
vendor
appCodeName
cookieEnabled
geolocation
appName
productSub
userAgent
vendorSub
javaEnabled
getStorageUpdates
(请注意,在上面的代码行中,我没有检查hasOwnProperty
,您通常应该在迭代对象元素时使用它)。
【讨论】:
【参考方案4】:移动 Safari 中没有开发者工具窗口。有一个调试控制台,它将报告 javascript、html 和 css 中的错误,但它与您在桌面浏览器中找到的开发工具相去甚远。这个调试控制台不允许输入javascript(虽然这可以在地址栏中完成,例如javascript:alert("hi");
)
要启用调试控制台,请打开 设置 应用,转到 Safari 菜单,然后转到 Developer,然后打开调试安慰。回到 Safari,滚动到页面顶部,很明显要做什么才能进入调试控制台。
【讨论】:
【参考方案5】:我喜欢 jsconsole.com。
另外,您可以使用 json2.js 库 (https://github.com/douglascrockford/JSON-js),它会为您提供 JSON.stringify() 函数。
console.log(JSON.stringify(a:'a',b:'b');
【讨论】:
很可能最近的浏览器提供了原生的JSON.stringify
;这实际上由输出
确认:如果浏览器不支持该功能,OP 会收到错误消息。
没有其他人提供真正有效的解决方案,jsconsole.com 最终帮助找到了我需要的移动 safari 信息。
现在,Web Inspector 很糟糕,即使你不能在 Windows 上的 iPhone 上使用它:\以上是关于如何检查移动 safari 的窗口对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何检查是不是存在 SpringBoard 警报/Safari 浏览器弹出窗口?
当 html 中的标签更改时,粘贴弹出窗口在 safari(装有 iOS 8.0.2 的 iPad)中消失
如何使用 JavaScript 单击 Safari 移动设备上的按钮?