2011-03-16 80 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與指定的時間,你認爲應該完全加載腳本。

相關問題