WindowsPhone8IE10JavaScript调试

WindowsPhone8IE10JavaScript调试,javascript,windows-phone-8,internet-explorer-10,Javascript,Windows Phone 8,Internet Explorer 10,IE10在HTML5合规性方面有一些出色的增强,但在WP8上运行时,仍然需要开发JavaScript HTML5,因为除了控制台消息之外,没有其他方法调试应用程序 在WP8上运行的IE10是否有类似WebKit手机浏览器的远程调试体验(例如,请参阅我的视频)。通过USB电缆连接到桌面Safari,在IOS上调试Javascript应用程序很容易,因为可以在远程调试器中设置断点并检查变量。我希望IE10中也有相同的功能,并希望您能提供有关在何处启用这些非常需要的功能的任何信息。坏消息是,与WP7/

IE10在HTML5合规性方面有一些出色的增强,但在WP8上运行时,仍然需要开发JavaScript HTML5,因为除了控制台消息之外,没有其他方法调试应用程序


在WP8上运行的IE10是否有类似WebKit手机浏览器的远程调试体验(例如,请参阅我的视频)。通过USB电缆连接到桌面Safari,在IOS上调试Javascript应用程序很容易,因为可以在远程调试器中设置断点并检查变量。我希望IE10中也有相同的功能,并希望您能提供有关在何处启用这些非常需要的功能的任何信息。

坏消息是,与WP7/IE9相比,没有新的调试功能。请看一下,因为我们在WP8上的情况完全相同

我个人每天使用的东西

  • 尽可能多地在IE10桌面上调试你的应用程序

  • 远程调试器。您可以使用以下基于Weinre的应用程序简化其使用(无需本地设置)-或

    支持

    Html遍历 Html节点样式、属性、度量 阅读控制台输出 从控制台在设备端执行js(包括intellisense) 动态脚本注入-调试实时站点的能力

    不支持

    js断点

  • 对于javascript逐行调试,请使用

  • 将控制台跟踪重定向到VisualStudio输出,并能够使用console.log(“某些消息”)进行跟踪

  • index.html:

    <script type="text/javascript">
        window.console = {
            log: function (str) { window.external.Notify(str); }
        };
    
        // output errors to console log
        window.onerror = function (e) {
            console.log("window.onerror ::" + JSON.stringify(e));
        };
    
        console.log("Installed console !");
    </script>
    

    虽然不是一个完整的解决方案,但Lauri Piispanen的基于nodejs的远程JS控制台记录器可以帮助您。

    FWIW:Windows Phone 8.1终于支持远程调试了。参见

    谢谢这非常有帮助,但我对追踪很好奇。你是说如果我在手机模拟器中运行Phonegap应用程序,我会在Visual Studio中看到控制台输出吗?这本身就是一个好消息,可惜IE团队没有看到Webkit调试是如何在手机上工作的,因为它太棒了!是的,在Cordova/PhoneGap控制台下。log()调用被重定向到Visual Studio输出窗口。回答得很好!使用Cordova/PhoneGap,我只需将“WebBrowser Browser=new WebBrowser();”添加到主页分类中,我相信“WebBrowser Browser=new WebBrowser();”行不是必需的,因为浏览器控件实例必须已经在主页上,并且在加载该控件之前调用了Browser_Loaded方法。实际上,这不再是真的。Weinre支持IE10+和FF。请注意,您需要VS 2013/VS 2015。
    private void Browser_Loaded(object sender, RoutedEventArgs e)
    {
        Browser.IsScriptEnabled = true;
        // Add your URL here
        Browser.Navigate(new Uri(MainUri, UriKind.Relative));
    
        Browser.ScriptNotify += (s, arg) =>
        {
            Debug.WriteLine(arg.Value);
        };           
    }