[英]ClientScript.RegisterClientScriptBlock not working in chrome
[英]ASP.net: ClientScript.RegisterClientScriptBlock fires before jQuery is loaded
这里有趣的问题来自我最近看过的一些继承的代码。 我正在尝试将压缩模块添加到项目中。 它正在加载所有JS和CSS文件,将它们组合在一起,缩小它们并压缩它们。 我尝试了很多解决方案,但所有这些解决方案都有一个致命的问题。
我有一些javascript正在通过MasterPage的PreRender中的Page.ClientScript.RegisterClientScriptBlock加载。 压缩模块在MasterPage中作为脚本标记链接加载,但是当我运行页面时...来自PreRender的代码被顶上并且给我一个'$ is undefined'错误,告诉我jQuery不是装了。
此外,当谈到内容页面上的内联javascript时,我似乎无法解决同样的问题。
关于是什么导致这个的任何想法? 启发我,因为我不知道。
如果之前使用RegisterStartupScript
(而不是RegisterClientScriptBlock
)完成了这项操作,并从WITHIN那个脚本调用$(document).ready(function()
。
我知道这个答案迟到了,但是尝试在OnPreRenderComplete
(而不是OnPreRender
)处理程序中调用ClientScript.RegisterClientScriptBlock
。 这将在页面呈现过程中稍后插入代码。
如果最终扩展到jquery的脚本标记链接不在头部,而是在页面正文中,则在脚本块执行时将取消定义$
,除非它在开始<form />
之前包含在html中在渲染的html中标记,我理解的是RegisterClientScriptBlock
吐出其脚本(就在那个开始标记之后)。
如果不是这种情况,并且加入/缩小的脚本在头部,那么我将使用浏览器调试器(如Firebug或IE Dev Tools)来验证jquery脚本是否正确地包含在组合脚本中。
所有的jQuery代码都应该写在DOM-ready函数中:
$(function() {
// your code here
});
独立于你将它放在页面中的位置,因为之前jQuery()函数是不可用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.