2011-03-16 78 views
0

嗨,我试图插入伟大的syntaxhighlighter到asp.net网页,但每次有错误说'dp是未定义的'。我如何确保在页面继续之前加载一些js文件

我认为在它下载脚本之前它会到达调用部分,我如何确保文件在继续之前被加载?

感谢

多伦

编辑:这是我在我的aspx文件中使用的代码,它工作正常,因为常规的HTML,但是当我试图在一个ASPX文件正在使用它说“DP未定义”

<link type="text/css" rel="stylesheet" href="App_Data/Styles/SyntaxHighlighter.css"></link> 
    <script type="text/javascript" src="App_Data/Scripts/shCore.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCpp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCSharp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushCss.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushJava.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushJScript.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushPhp.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushPython.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushRuby.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushSql.js"></script> 
    <script type="text/javascript" src="App_Data/Scripts/shBrushXml.js"></script> 
     <script type="text/javascript"> 
     window.onload = function() { 
      dp.SyntaxHighlighter.ClipboardSwf = 'http://aaron-mueller.de/vendor/dp_syntax_highlighter/Scripts/clipboard.swf'; 
      dp.SyntaxHighlighter.HighlightAll('code'); 
     } 
    </script> 
+0

没有提到关于行号或文件什么。您可能需要使用Firebug或开发工具检查堆栈跟踪 – Prescott 2011-03-16 22:05:08

+0

它指的是位于window.onload函数中的dp.SyntaxHighlighter.ClipboardSwf ...,但dp是在shCore.js中定义的 – 2011-03-17 09:13:07

回答

2

其实,如果把脚本按正确的顺序,一切都应该很好地工作:

<script src=".../highlighter.js"></script> 
<script> 
    highlighter.doAnything(); 
</script> 

但它可能发生,该荧光笔注入的<脚本>标签himselves,在这种情况下的Jakub的解决方案应该有所帮助:在文件加载中执行所有操作

二者必选其一

window.onload = function(){highlighter.doAnything();} 

事件或者(如果使用jQuery)

$(function(){ 
    highlighter.doAnything(); 
}); 
0

将调用部分内

$(function(){ 
// your code goes here 
}) 

,如果你使用jQuery

0

HTML页面将按顺序执行;因此,如果你在你的页面

<script src="Something.js"></script> 

标签,你需要确保没有代码试图调用你打装载机前。在动态加载一组javascript文件的情况下,通常会有一个注入点,您可以在加载完成时插入回调。

如果一切都失败了,你总是可以延迟执行使用setTimeout与指定的时间,你认为应该完全加载脚本。

相关问题