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

12

如何检查移动Safari的window对象?

更具体地说,是窗口导航器(window.navigator) - 尝试将其转换为字符串无效,而且我也不能在控制台中探索它。

谢谢!

编辑:

console.log(window.navigator);

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

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

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

还尝试将所有这些变化都通过套接字发送到服务器并记录它们。

输出要么是[object Navigator],要么是"{}",要么什么都没有。

5个回答

36

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

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

Settings > Safari > Advanced > Web Inspector (ON)
  • 返回您设备上的Safari。
  • 回到您的电脑,在开发者菜单中选择您的设备(例如iPhone模拟器,iPhone)
  • 注意:只有在Safari处于活动状态并运行时,您才会在开发人员菜单中看到您的设备。

    享受吧!


    5
    您还需要您的iPhone数据线。 - colllin
    @colllin 不一定需要。如果您的MacOS和iPhone(WiFi)在同一网络上,则不需要电缆。我能够在MacOS上无线调试iPhone Safari控制台窗口。 - Himanshu Patel

    4

    我喜欢jsconsole.com。

    另外,您可以使用json2.js库(https://github.com/douglascrockford/JSON-js),它将提供JSON.stringify()函数。

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

    最近的浏览器很可能提供本地的JSON.stringify函数;这一点通过输出的{}得到了确认:如果浏览器不支持该函数,OP将会收到一个错误消息。 - Marcel Korpel
    1
    没有其他人提供实际有效的解决方案,最终 jsconsole.com 帮助我找到了我需要的移动 Safari 信息。 - fancy
    现在,即使你不能在Windows上使用它,Web Inspector仍然是一个很棒的工具。:\ - Gabriel Nahmias

    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,在迭代对象元素时通常应该使用它。


    1

    0

    在移动版Safari中没有开发者工具窗口。有一个调试控制台,可以报告javascript、html和css的错误,但它远不及桌面浏览器中你会找到的开发者工具。这个调试控制台不允许输入javascript(虽然可以在地址栏中完成,例如javascript:alert("hi");)。

    要启用调试控制台,请打开设置应用程序,进入Safari菜单,然后进入开发人员,然后打开调试控制台。返回Safari,滚动到页面顶部,就会明显地看到如何进入调试控制台。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接