您好我正在尝试将优秀的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>
答案 0 :(得分:2)
实际上,如果按正确顺序放置脚本,一切都应该正常工作:
<script src=".../highlighter.js"></script>
<script>
highlighter.doAnything();
</script>
但是可能会发生,荧光笔会注入&lt; script&gt;标记自己,在这种情况下,Jakub的解决方案应该有所帮助:在文档加载上执行所有操作。
使用
window.onload = function(){highlighter.doAnything();}
事件或(如果使用jQuery)
$(function(){
highlighter.doAnything();
});
答案 1 :(得分:0)
将调用部分放在
中$(function(){
// your code goes here
})
如果你正在使用jQuery
答案 2 :(得分:0)
HTML页面将按顺序执行;因此,如果你有一个
<script src="Something.js"></script>
在您的页面中标记,您需要确保在您点击加载程序之前没有代码尝试调用它。在动态加载一组javascript文件的情况下,通常有一个注入点,您可以在加载完成时插入回调。
如果所有其他方法都失败了,您始终可以使用setTimeout延迟执行,并指定您认为应该完全加载脚本的时间。