2012-04-04 39 views
1

我试图生成一个页面,其中显示的基本数据可以用不同的方式解释。所以我有一个数据格式和几个不同的JS脚本来从数据中生成HTML。每个脚本都包含一个名为BuildView的函数,用于输入数据,解析数据并使用document.write输出HTML。服务器端脚本将适当的视图插入正确的数据和脚本包含到页面中。很简单,对吧?当我说“步入”时,为什么Firebug不会进入我的脚本?

除了在页面上没有显示任何东西。所以我决定尝试使用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。我错过了什么?如何让脚本调试器实际调试到此脚本中?

+0

您是否尝试过BuildView内的断点?你也应该试试google chrome的调试器。另外,为什么使用'document.write'?通过让BuildView设置innerHTML的“#data-view”,让它变得不那么突兀,那么你可以动态地改变内容... – 2012-04-04 16:48:58

+0

我建议尝试一个更简单,静态的测试页与JavaScript,然后当它工作有服务器动态地包含它。如果静态页面不起作用,请在jsfiddle中与我们分享。 – AlexMA 2012-04-04 16:57:42

+0

@Juan:我不能在BuildView中放置一个断点,因为它没有出现在Firebug中。它位于外部文件中,无论出于何种原因,这不会显示在脚本选项卡中。 – 2012-04-04 17:04:21

回答

1
  1. 确保该脚本实际上正在加载。
  2. 在函数中放入一个console.log()alert()以确保它实际上正在发射。
  3. 将div中的<script></script>标记移动到</body>标记的末尾。
  4. 尝试从控制台运行BuildView()以查看页面加载后是否有效。

让我知道他们是怎么回事。

+0

使用'alert'语句帮助我追踪问题。在我的'BuildView'中出现了一个语法错误(由于某种原因,我从来没有抱怨过),一旦我解决了这个问题,我就可以开始工作。 – 2012-04-04 23:17:15

1

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

另一件要尝试的是设置萤火虫显示eval脚本也。从播放/暂停按钮旁边的按钮

enter image description here

相关问题