【问题标题】:How can i make sure that some js files are loaded before the page continue如何确保在页面继续之前加载了一些 js 文件
【发布时间】:2011-03-16 21:20:45
【问题描述】:

您好,我正在尝试将出色的语法高亮器插入 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> 

【问题讨论】:

  • 它是否提到了有关行号或文件的任何内容。您可能需要使用 Firebug 或开发人员工具检查堆栈跟踪
  • 指的是window.onload函数中的dp.SyntaxHighlighter.ClipboardSwf...,而dp是在shCore.js中定义的

标签: c# javascript asp.net syntaxhighlighter


【解决方案1】:

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

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

但也有可能发生,荧光笔自己注入

使用任一

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

事件或(如果使用 jQuery)

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

【讨论】:

    【解决方案2】:

    把调用部分放在里面

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

    如果你使用的是 jQuery

    【讨论】:

      【解决方案3】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-24
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 2023-04-07
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多