2011-06-01 143 views
11

如何检查移动Safari浏览器的窗口对象?如何检查移动Safari浏览器的窗口对象?

或更具体地说,window.navigator - 试图转换为字符串不起作用,我无法在控制台中探索它。

谢谢!

编辑:

console.log(window.navigator);

console.log(String(window.navigator));

console.log(JSON.stringify(window.navigator));

console.log(window.navigator.serialize());

还试图将所有这些变化在套接字服务器,并记录他们那里。

输出内容为[object Navigator]"{}",或没有

+0

你是怎么试着*完全*?我们需要看看你执行了什么代码。 – 2011-06-01 19:31:15

+0

编辑更多的信息,谢谢。 – fancy 2011-06-01 19:38:43

回答

4

我喜欢jsconsole.com。另外,你可以使用json2.js库(https://github.com/douglascrockford/JSON-js),它会给你JSON.stringify()函数。

console.log(JSON.stringify({a:'a',b:'b'}); 
+0

最近的浏览器很可能提供了一个原生的'JSON.stringify';这实际上是通过输出'{}'确认的:如果浏览器不支持该功能,则OP会收到错误消息。 – 2011-06-01 21:19:39

+1

没有其他人提供了实际工作的解决方案,jsconsole.com最终帮助我找到了我需要的移动Safari信息。 – fancy 2011-06-02 00:40:20

+0

现在,尽管您不能在Windows上使用iPhone,但Web Inspector仍然很糟糕:\ – 2013-09-18 02:06:42

0

移动Safari浏览器中没有“开发工具”窗口。有一个调试控制台,它将在javascript,html和css中报告错误,但它远不及您在桌面浏览器中找到的开发人员工具附近。这调试控制台不支持Java脚本的输入(尽管这可以在地址栏进行,例如javascript:alert("hi");

要启用调试控制台,打开设置应用,转到Safari浏览器菜单,然后开发人员,然后打开调试控制台。回到Safari浏览器,滚动到页面顶部,显而易见要进入调试控制台的操作。

1

那些输出看起来完全正确。例如,当我问的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,你通常应该使用迭代时覆盖对象元素)。

35

更新!在OS X上,您可以在iOS模拟器和iOS 6设备上使用Safari Web检查器。

  1. 首先启用Safari中的开发者菜单。
  2. 接下来,启用iOS设备(或模拟器)上的远程调试。

    Settings > Safari > Advanced > Web Inspector (ON) 
    
  3. 返回到设备上的Safari。
  4. 回到你的电脑,单击开发菜单,并选择您 设备(如iPhone模拟器,iPhone)

注意:您会看到您的设备在开发者菜单只有当Safari浏览器是活动的,运行。

享受!

+4

您还需要iPhone电缆。 – colllin 2012-10-17 17:29:46