0

嗨,我正在尝试将出色的 syntaxhighlighter 插入 asp .net 页面,但每次它都有一个错误说“dp 未定义”。

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

谢谢

多伦

编辑:这是我在我的 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> 
4

3 回答 3

2

实际上,如果将脚本按正确的顺序排列,一切都应该正常:

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

但是有可能发生,荧光笔自己注入 <script> 标签,在这种情况下,Jakub 的解决方案应该有所帮助:在文档加载时执行所有操作。

使用任一

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

事件或(如果使用 jQuery)

$(function(){ 
   highlighter.doAnything();
});
于 2011-03-16T21:28:16.440 回答
0

把调用部分放在里面

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

如果你使用 jQuery

于 2011-03-16T21:22:25.270 回答
0

HTML 页面将按顺序执行;因此,如果您有

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

在您的页面中添加标签,您需要确保在您点击加载程序之前没有代码试图调用它。在动态加载一组 javascript 文件的情况下,通常有一个注入点,您可以在加载完成时插入回调。

如果所有其他方法都失败了,您始终可以使用 setTimeout 推迟执行,并指定您认为脚本应该完全加载的时间。

于 2011-03-16T21:24:58.127 回答