代码之家  ›  专栏  ›  技术社区  ›  Andrew

RegisterClientScriptInClude由于某些原因不起作用

  •  0
  • Andrew  · 技术社区  · 16 年前

    我花了至少两天的时间尝试任何东西并在谷歌上搜索这些东西……但是出于某种原因,我不能让registerclientscriptinclude像其他人那样工作?

    首先,我正在使用.NET3.5AJAX,…并且在我的部分页面刷新中包含了JavaScript…使用以下代码:

    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "MyClientCode", script, true);
    

    它工作得很好,我的javascript代码包含在 脚本 每次部分刷新都包含变量。

    中的javascript 脚本 实际上是非常广泛的,我想把它存储在一个.js文件中,…所以在逻辑上我创建了一个.js文件,并尝试使用registerclientscriptinclude来包含它…但是我不能在我的生命中让它工作。这是准确的代码:

    ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "mytestscript", "/js/testscript.js");
    

    testscript.js文件只包含在完整的页面刷新中…例如,当我加载页面或执行完整的回发时…我无法将该文件包含在部分刷新中…不知道为什么..当在firebug中查看ajax文章时,我看不出是否包含该文件有什么区别….

    这两个scriptmanager include都是从“page_load”中完全相同的位置运行的……因此它们应该执行每个部分刷新(但只有scriptblock执行)。

    不管怎样,…任何帮助或想法,…或是我能解决这个问题的其他方法,都将不胜感激。

    谢谢, 安得烈

    1 回复  |  直到 16 年前
        1
  •  1
  •   Joel Coehoorn    16 年前

    这是钥匙:

    部分页面刷新

    在初始加载之后,您必须跳过特殊的步骤才能将javascript添加到页面中,因为有些人认为稍后加载javascript有安全风险(这也不利于google索引)。

    相反,在初始页面加载时注册脚本,直到稍后才执行脚本。如果这些脚本是动态创建的,我建议您将静态部分和重构作为可以使用页面刷新动态返回的信息调用的方法。