被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用

其所用项目由Asp.Net技术开发,仍然使用的Webform作为前端处理,但某些功能包含了jQuery的功能,他遇到的问题就是无论用IE还是Firefox,包含jQuery的那部分页面功能都无法正常使用。

搜索Google后,结果可以归纳为3种:

没有启用FSO功能
IE安全设置级别过高
没有安装MSXML
但针对现在项目检查后,以上均不是问题所在,在项目中带有个测试页面,可以检查服务器端是否能正常运行jQuery,内容和jQuery官方网站的内容一样:

代码


代码如下:

<html>
<head>
<script type="text/javascript" src="js/jquery.js" />
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
</script>
</head>
<body>
<a href="#">Link</a>
</body>
</html>

可无论如何就是不能在IE或火狐中看到jQuery弹出的"OK"提示,我就囧了……于是我执行以下步骤:

下载最新的jQuery脚本替换掉项目中带有的版本
检查每行javascript代码
检查 IE安全设置,设置为最低
…………
均没有见到效果,直到今天突然才发现,该页面调用jQuery 的引用行是这样书写的

<script type="text/javascript" src="js/jquery.js" />

我改成

<script type="text/javascript" src="js/jquery.js" ></script>

“OK”终于弹出来了……

但问题还没有结束,项目开发者是在母版页中包含了jQuery, 源码如下

代码


代码如下:

<asp:ScriptManager ID="ScriptManager1" runat="server" >
<Scripts>
<asp:ScriptReference Path="~/js/jquery.js" />
</Scripts>
</asp:ScriptManager>

查阅ASP.NET官方论坛可以看到答案http://forums.asp.net/t/1377657.aspx,我将Script控件属性添加EnablePartialRendering="true" 和 EnableScriptGlobalization="false" 后,一切正常,至此问题全部解决,项目成功部署。
总结:感谢楼下花时间看完我这篇文章,但我查阅了W3C关于html中引用<script>脚本的规范http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2.3,也未找到<script />这样写法是不符合规范的定义,只看到了提倡尽可能不用闭合标记">"而是用"<"比较好(如“ y < x”比"x > y"好)。
又见留言,再度感谢。但我想表达的意思是,这种写法仅在asp.net环境下会出现问题,如果在php中这样书写<script src='.....' type='text/javascript' />,在apache环境下可以正常运行并得到结果。

(0)

相关推荐

  • 被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用

    其所用项目由Asp.Net技术开发,仍然使用的Webform作为前端处理,但某些功能包含了jQuery的功能,他遇到的问题就是无论用IE还是Firefox,包含jQuery的那部分页面功能都无法正常使用. 搜索Google后,结果可以归纳为3种: 没有启用FSO功能 IE安全设置级别过高 没有安装MSXML 但针对现在项目检查后,以上均不是问题所在,在项目中带有个测试页面,可以检查服务器端是否能正常运行jQuery,内容和jQuery官方网站的内容一样: 代码 复制代码 代码如下: <html>

  • firefox下jquery ajax返回object XMLDocument处理方法

    在firefox下使用jquery ajax处理struts2 返回json类型的时候,ajax执行成功返回结果为 [object XMLDocument]. 处理办法:在getWriter.print():前面加上一行代码 复制代码 代码如下: ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");

  • jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】

    本文实例讲述了jQuery悬停文字提示框插件jquery.tooltipster.js用法.分享给大家供大家参考,具体如下: 运行效果截图如下: index.html页面: <!DOCTYPE html> <html lang="en"> <head> <title>jQuery Tooltips悬停文字提示框效果</title> <meta charset="utf-8" /> <lin

  • jQuery源码分析-03构造jQuery对象-工具函数

    作者:nuysoft/高云 QQ:47214707 EMail:nuysoft@gmail.com 声明:本文为原创文章,如需转载,请注明来源并保留原文链接. 读读写写,不对的地方请告诉我,多多交流共同进步,本章的的PDF等本章写完了发布. jQuery源码分析系列的目录请查看 http://nuysoft.iteye.com/blog/1177451,想系统的好好写写,目前还是从我感兴趣的部分开始,如果大家有对哪个模块感兴趣的,建议优先分析的,可以告诉我,一起学习. 3.4 其他静态工具函数

  • 你的jquery ajax无效和你的jquery引入路径有关

    Jquery不必多说,你能阅读到该篇文章,肯定知啊都jquery是js框架. 大家在做项目的时候肯定或多或少都需要用到ajax. 而如果用到jquery的ajax,那么就需要将jquery引入到jsp页面. 当你发现你的jquery ajax无效的时候,不妨使用 fire bug调试一下,这时你会发现,提示"$"无效,为什么会有这种提示呢?原因很简单,就是你引入jquery.js的路径有问题. 所以大家遇到此类问题的时候,首先要做的就是看看自己的jquery路径是不是有问题. jque

  • jQuery 源码分析笔记(6) jQuery.data

    data部分的代码从1381行开始.最开始的几行关键代码: 复制代码 代码如下: jQuery.extend({ // 存储数据的地方,关键实现核心 cache: { }, // 分配ID用的seed uuid: 0, // 为了区别不同的jQuery实例存储的数据,使用前缀+jQuery版本号+随机数作为Key expando: "jQuery" + (jQuery.fn.jquery + Math.random()).replace(/\D/g, ""), //

  • jQuery 学习第七课 扩展jQuery的功能 插件开发

    jQuery的主体如下: (function(){ --})(); 对于Javascript基础不太好好的人来说比较奇怪.实际上,这个表达式声明了一个匿名函数(第一个括号),然后再执行它(第二个括号).在这个函数中,完成了jQuery一系列方法和对象的定义.第24行很关键, 复制代码 代码如下: jQuery = window.jQuery = window.$ = function( selector, context ) { // The jQuery object is actually

  • JQuery 无废话系列教程(一) jquery入门 [推荐]

    本文的宗旨, 授人鱼不如授人渔. 我只会讲关键部分,不可能JQuery的每个函数我都讲,因为有很多函数贝壳自己在实际应用中都从未使用过. 但当我们已经会渔了还用担心鱼吗!? BTW:贝壳假设你已经掌了基本的JavaScript运用能力及基础的CSS知识. JQuery是什么        JQuery只是一个JS文件 人对新鲜事业总是报着好奇与排斥的情感,贝壳刚开始学的时候也一样. 想掌握又怕自己学不会. 其实JQuery很简单.       JQuery其实就是一个工具包,很多常用的功能已经被

  • web开发人员学习jQuery的6大理由及jQuery的优势介绍

    jQuery是一个用来简化HTML客户端开发的JS(JavaScrip)库,它支持HTML DOM处理,同时还融合了部分HTML和CSS.许多网站建设公司已经加入了jQuery的阵营,你的公司也该加入了. 下面就来看看jQuery为何对公司有如此大的影响吧. 1.jQuery简化了工作 学习jQuery非常容易--毕竟这个函数库由更简短.更简洁的代码创建.jQuery具有语句简洁.编码标准开放的特点,这些特点帮助开发者缩短了配置网站和应用所需的时间. 另外,使用jQuery创建web页面时,不要

  • jQuery position() 函数详解以及jQuery中position函数的应用

    position()函数用于返回当前匹配元素相对于其被定位的祖辈元素的偏移,也就是相对于被定位的祖辈元素的坐标.该函数只对可见元素有效. 所谓"被定位的元素",就是元素的CSS position属性值为absolute.relative或fixed(只要不是默认的static即可). 该函数返回一个坐标对象,该对象有一个left属性和top属性.属性值均为数字,它们都以像素(px)为单位. 与offset()不同的是:position()返回的是相对于被定位的祖辈元素的坐标,offse

随机推荐