JQM:如何在通过$ .mobile.changePage()加载的JS文件中调试时中断

时间:2012-11-10 23:25:33

标签: javascript jquery debugging jquery-mobile firebug

我正在使用jQuery,jQuery mobile(和PhoneGap,但这不相关)开发移动应用程序。假设我有两个html页面:page1.html和page2.html。我正在使用page1.html中的$ .mobile.changePage()加载page2.html。 page2.html中的页面div(即具有data-role =“page”的div)包含特定于page2的javascript代码,该代码也加载了page2.html。 page2.html中的代码如下所示:

<!DOCTYPE HTML>
<html>
<head>
    <title>Title</title>
</head>
<body>
<div id="conf-page" data-role="page">

    <script type="text/javascript" charset="utf-8">

    <!-- MY SCRIPT HERE ----->

    </script>
    <div data-role="header" style="height: 45px">

现在我想打破page2.html中的javascript代码中的某个地方。目前,我正在使用Firefox(16.0.2)和Firebug进行开发和调试。当加载page2.html时,我在firebug Scripts列表中的两个位置看到了page2.html的JS代码:

  1. 在jQuery.min.js / eval / MD5 /
  2. 在jQuery.min.js / eval / seq /&lt;#&gt;
  3. 如果我在其中一个代码中放置一个断点,它将应用于上面(1)中的代码,但是在加载page2.html时它永远不会被命中。

    如何在page2.html中设置断点并破解JS代码中的某个位置?我在网上找不到任何相关内容,这让我觉得我必须遗漏一些东西,因为这一定是一个非常常见的要求。

1 个答案:

答案 0 :(得分:0)

看起来我正在搜索不同的字词。本网站已就此问题进行了一些讨论。以下是一些参考文献:

上述主题中提出了两种解决方案:

  • 这些线程中的大多数提出了相同的解决方案:使用“调试器”;声明(没有引号)在代码中两次停止FireBug调试器。我做到了,这是一个部分解决方案:萤火虫确实破坏了,但变量堆栈是空的。所以这不是很有用。
  • 将脚本放在一个文件中,使用AJAX Get调用加载脚本,并将crossdomain设置为true,然后获取脚本文件,加载脚本文件并在调试器中显示脚本文件。现在可用于设置断点等。比上面更有用。

保持开放以确定是否有其他解决方案。