【问题标题】:Conflict between Google util.js and ASP.NET AJAX?Google util.js 和 ASP.NET AJAX 之间的冲突?
【发布时间】:2025-11-23 16:15:01
【问题描述】:

我正在尝试使用Google's jstemplate 作为 ASP.NET 页面上的客户端模板引擎,它似乎与 ASP.NET AJAX 冲突。问题不是 jstemplate.js 而是 util.js,它需要作为支持文件。

我已将问题隔离如下::

<%@ Page Language="VB" %>
<body>
    <form id="form1" runat="server">
        <asp:scriptmanager id="ScriptManager" runat="server" enablepartialrendering="true">
            <scripts>
                <asp:scriptreference path="http://google-jstemplate.googlecode.com/svn/trunk/util.js" />
            </scripts>
        </asp:scriptmanager>
    </form>
</body>
</html>

当我运行它时,我得到了这个错误

Microsoft JScript runtime error: 'type' is null or not an object`

MicrosoftAjax.js这一行:

 Sys.UI.DomEvent = function Sys$UI$DomEvent(eventObject) {
 ...
 var etype = this.type = e.type.toLowerCase();

在普通的&lt;script&gt; 块中(而不是在 ScriptManager 中)引用 javascript 具有相同的效果。

我还没有深入研究,但我怀疑只是命名空间冲突。有没有人在 ASP.NET ajax 旁边成功使用了 Google 的 util.js 文件?还是我应该只研究替代的客户端模板引擎?

【问题讨论】:

  • 查看了 Google 的 jstemplate - 我不确定我是否在下面给了你正确的答案,抱歉。

标签: asp.net javascript asp.net-ajax


【解决方案1】:

我们在使用 ASP.net AJAX 和 jQuery 时遇到了类似的问题。问题出在 $ 命名空间上,所以我们不得不恢复使用 jQuery 命名空间。

您的错误听起来很相似,所以我想看看您是否有 google util.js 的替代命名空间或为自己设置一个。

HTH

马特

【讨论】:

  • 谢谢 - 实际上,由于我在这里没有得到任何回复,我最终使用了 John Resig 的微模板方法的变体而不是 jstemplates:ejohn.org/blog/javascript-micro-templating
  • 直到你提到它我才听说过 javascript 模板。我很感动,所以感谢您提出这个问题。