【问题标题】:Why isn't Firebug stepping into my script when I say "Step In"?为什么当我说“Step In”时 Firebug 没有进入我的脚本?
【发布时间】:2012-04-04 16:44:16
【问题描述】:

我正在尝试生成一个页面,其中要显示的基本数据可以以不同的方式解释。所以我有了一种数据格式,以及一些不同的 JS 脚本来从数据中生成 HTML。每个脚本都包含一个名为BuildView 的函数,该函数输入数据、解析数据并使用document.write 输出HTML。服务器端脚本将正确的数据和脚本包含插入到页面中以用于适当的视图。很简单,对吧?

除了页面中没有显示任何内容。所以我决定尝试用 Firebug 调试它。这是页面的基本结构:

<!DOCTYPE blah blah blah>
<html>
<head>blah blah blah</head>
<body>
<script type="text/javascript" src="/view.js"></script>
<div id='main-page'>
  <h1 align="center">TITLE</h1>

  <p align="left"><strong>Data: </strong>
    <div id="data-view">
      <script type="text/javascript">
        BuildView('data from server');
      </script>
    </div>
  </p>
</div>
</body></html>

data-view div 中没有显示任何内容。我加载了 Firebug,切换到脚本选项卡,在调用 BuildView 时设置断点,然后重新加载页面。它停在断点处,我按下 F11(Step Into),希望自己能在BuildView 脚​​本中环顾四周,看看发生了什么。相反......我什么也没得到。它只是跨过它并完成了页面的渲染。没有报告错误,但实际上没有发生任何事情。

如果你看不出来,我之前没用过 Firebug。我错过了什么?如何让脚本调试器真正调试到这个脚本中?

【问题讨论】:

  • 你在 BuildView 中尝试过断点吗?您还应该尝试使用 google chrome 的调试器。另外,为什么要使用document.write?通过让 BuildView 设置 "#data-view" 的 innerHTML 使其不那么突兀,然后您可以动态更改内容...
  • 我建议使用 javascript 尝试一个更简单的静态测试页面,然后当它工作时让服务器动态包含它。如果静态页面不起作用,请在 jsfiddle 中与我们分享。
  • @Juan:我不能在 BuildView 中放置断点,因为它没有出现在 Firebug 中。它在一个外部文件中,无论出于何种原因,它都没有显示在脚本选项卡中。
  • @MasonWheeler 您是否在我的回答中尝试了我的建议?另见stackoverflow.com/questions/797159/…

标签: javascript html firebug


【解决方案1】:
  1. 确保脚本实际正在加载。
  2. 在函数中添加console.log()alert() 以确保它确实在触发。
  3. div中的&lt;script&gt;&lt;/script&gt;标签,移动到&lt;/body&gt;标签的末尾。
  4. 尝试从控制台运行BuildView(),看看它在页面加载后是否有效。

让我知道这些进展如何。

【讨论】:

  • 使用alert 语句帮助我找到了问题所在。我的BuildView 中有一个语法错误(出于某种原因,没有人向我抱怨过),一旦我修复了它,我就让它工作了。
【解决方案2】:

试试Google chrome's debugger。 Firebug 在显示动态加载的文件时存在问题。

要尝试的另一件事是将 firebug 设置为也显示 eval 脚本。从播放/暂停按钮旁边的按钮

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 2020-01-03
    • 1970-01-01
    相关资源
    最近更新 更多