昨天在调用一段外部js时候IEtester的IE6模式报错。说某函数is undefined。可是其他的浏览器均正常,最后终于发现是编码问题,使用文本文档令存为的时候选择一下与网页相符的编码就解决问题了。这个以后要注意了~
下面是网上搜集的一些相关资料。
解决“引入JS文件IE6报错”的问题
问题描述:页面引入一个js文件,其中定义了函数或对象,然后在页面中调用函数或对象时,在IE6会报“语法错误”或“缺少对象”。在IE6+或者IE7却运行正常。
问题分析:这个对象在引入的JS文件中是存在的,因为在IE6+以上的浏览器都可以正常运行。这个问题在于文件编码上,如果JS文件编码与当前页面的编码不一致,就可能导致在IE6中页面不能正常获取和解析JS文件中的内容,在IE6中,默认引入的文件和页面的编码是一致的。在IE6+以上的浏览器中,一般浏览器会自动识别每个外部文件的编码并进行解析;
问题解决:
一:引入js文件时加charset属性,保持与页面编码一致;
二:修改引入文件编码格式;
三:新建一个文件格式同页面编码格式一致,复制粘贴内容;
(个人建议第三种方法,但建议在导入js时加上charset属性!)
今天发现一个奇怪的问题,
在jsp页面引用的js文件里面的方法 ,都报找不到对象的错误。
js在 引用也正常。就是找不到对象。。。。。。。。。。。。。。。。。。。
ie6下不行。
其他正常。
以前我用struts,但是页面还有中文字符,现在我把中文字符全部用 写在网页里,结果ajax不灵了,在firefox下可以,在ie下就不行了,但是如果直接吧ajax写在网页里,又都可以
下面是我的userajax.js文件内容
var req;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
}
function checkUsername(value)//使用Ajax访问服务器
{
createXMLHttpRequest();
if(req){
req.onreadystatechange=setEnValue;
req.open("GET"," eckUsername?username="+value);//把参数带到服务器中
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(null);
}else{
alert("XMLHttpRequest not created!!");
}
}
function setEnValue()
{
if (req.readyState==4 )//访问到服务器
{
if(req.status==200)//正确返回
{
var v=req.responseText;
document.getElementById("userexist").innerHTML=v;
}
else if(req.status==404){
alert("Not found!");
}
}
}
这个文件包含在jsp文件中
jsp页面:
<script src="/cn/js/search.js" type="text/javascript"></script>
|
|||----------------------------------------------------------------↓↓↓1楼 得分:0
另外,本人还有一个问题
function checkSearchform(){
document.searchform.searchname.focus();
searchname=document.searchform.searchname.value;
if (searchname == "") {
window.alert(" ");
document.searchform.searchname.focus();
return;
}
document.searchform.submit();
}
因为我是用struts,要用到国际化功能,但不喜欢用validator验证客户端,更喜欢用js做客户端验证,我如果把以上js直接写在jsp页面上,就可以显示 指定的值,但是如果把这个js作为一个js文件包含在jsp页面上,就不能显示那个key指示的值,我想问一下有没有其他的地方法显示key对应的值?
|||----------------------------------------------------------------↓↓↓2楼 得分:0
该回复于2009-04-20 15:17:30被管理员删除
|||----------------------------------------------------------------↓↓↓3楼 得分:10
没有碰到过,应该包括在里面和写在页面是一样的,看看你的那个 会不会和JS的的一些东西有冲突
|||----------------------------------------------------------------↓↓↓4楼 得分:70
有很大的可能性是js文件中的中文注释引起的,请把js中的中文注释全部去掉。
这是因为当js文件被浏览器加载的时候,由于不知道该用什么字符集来解析(没有深入研究过,我认为是以js所属的页面的字符集),
有时候字符集不匹配(比如因为使用的编辑工具把js村成了UTF-8而页面指定的编码是gbk),
中文字符的出现会破坏js语法。
|||----------------------------------------------------------------↓↓↓5楼 得分:10
http://hi.baidu.com/lael80/blog/item/5d2d835053d5a26285352449.html
|||----------------------------------------------------------------↓↓↓6楼 得分:10
那需要隐藏字段,然后在js里面取隐藏字段
|||----------------------------------------------------------------↓↓↓7楼 得分:0
非常感谢jinxfei网友,按照你的思路,就可以了!
也感谢其他参与的网友!
|||----------------------------------------------------------------↓↓↓8楼 得分:0
引用 7 楼 defokus 的回复:
非常感谢jinxfei网友,按照你的思路,就可以了!
也感谢其他参与的网友!
侥幸而已,因为我自己曾经两次碰到过这个问题。
分享到:
相关推荐
例如,某些JavaScript特性在IE6中可能不被支持,而在IE10中则完全没问题。 1. **IE6兼容性问题**:IE6是2001年发布的,其JavaScript引擎(JScript)相比现代浏览器有许多局限。例如,它不支持`Array.prototype....
`IE8.js`着重于解决IE8中的兼容性问题,这个版本的IE对很多现代JavaScript特性支持不足,如函数对象的`addEventListener`和`removeEventListener`方法,以及对JSON的支持。`IE8.js`会模拟这些特性,使开发者能够使用...
这意味着在IE8上,我们需要考虑一些现代JavaScript语法的不兼容性,比如没有Array.forEach、map等方法,也没有JSON对象。此外,IE8对CSS3的支持也相当有限,这可能会影响到ECharts图表的样式和动画效果。 ECharts...
在IT行业中,jQuery Uploadify.js是一款非常流行的前端文件上传插件,它允许用户通过异步方式上传文件到服务器,提供了一种友好的用户体验。然而,随着浏览器版本的更新,一些较旧的插件可能不再兼容新的浏览器,...
本文主要讨论的是在IE6中引入JS文件时遇到的“语法错误”或“缺少对象”的问题及其解决方案。 首先,问题的核心在于文件编码。当我们在页面中引入一个JS文件,而这个文件的编码与当前页面的编码不一致时,IE6可能会...
JavaScript 实现写入文件到本地的方法【基于 FileSaver.js 插件】 JavaScript 实现写入文件到本地的方法是指在客户端使用 JavaScript 实现将文件保存到本地计算机的方法。由于 JavaScript 基于安全考虑,不允许直接...
在JavaScript(JS)中处理文件上传,特别是在Internet Explorer(IE)浏览器中,由于其独特的安全策略和对ActiveX的支持,需要进行一些特定的配置才能使上传功能正常工作。以下是关于如何配置IE以支持JS文件上传的...
总的来说,"ie6-10兼容性解决-js.zip"提供了一套解决方案,帮助开发者解决在IE6到IE10中遇到的JavaScript兼容性问题,让网站可以在这些旧版本的浏览器上正常运行。这在当今虽然不那么常见,但对于维护旧项目或者服务...
在网页开发过程中,JavaScript(简称JS)是一种必不可少的语言,它为网页提供了交互性和动态效果。然而,在不同的浏览器环境下调试JavaScript代码却是一项挑战,尤其是在早期版本的Internet Explorer(以下简称IE)...
在JavaScript中,Blob对象用于表示不可变的原始数据,它不是JavaScript的内置数据类型,而是用来处理二进制数据的一种方式。Blob对象是File对象的基类,File对象则专门用于处理用户系统上的文件。Blob对象可以接收一...
在IE中,通过JavaScript可以获取用户选择的文件信息,但出于安全考虑,浏览器不会提供文件的完整路径,只能获取文件名。例如,通过`event.target.files[0].name`可以获取选中文件的名称。如果需要将文件上传至服务器...
在JavaScript(JS)环境中,导出TXT文件通常涉及到文件API的使用,这使得用户可以在浏览器中下载自定义数据为文本格式。"不适用插件导出txt文件"的方法主要是通过创建一个隐藏的`<a>`标签,利用浏览器的下载功能来...
描述中的“用js打开本地的QQ文件,报错先把网站加入信任站点才能创建对象调用”揭示了一个关键问题:在IE中,尝试通过JavaScript直接操作本地文件通常会遇到安全警告,除非用户已将网站添加到其信任站点列表中。...
PNG(Portable Network Graphics)是一种支持透明度的图像格式,但在IE6中,它无法正确显示带有alpha透明通道的PNG-24图像,导致图片出现半透明部分变成全黑或者背景颜色无法透过,这被称为“PNG透明问题”。...
在JavaScript中导入Excel文件,尤其是在兼容古老的Internet Explorer 11(IE11)浏览器时,需要考虑到这个浏览器并不支持现代的File API和其他先进的Web技术。本文将深入探讨如何实现这一功能,以及涉及到的关键知识...
在本文中,我们将深入探讨如何完美解决在Internet Explorer 9(IE9)浏览器中遇到的“对象未定义”错误。这种问题通常是由于浏览器的兼容性问题、JavaScript代码执行顺序、或者资源加载顺序不当所引起的。以下是一些...
当尝试通过`AjaxFileUpload.js`上传较大文件至服务器时,在IE9和Firefox浏览器中可能会出现上传失败的情况。此问题的原因通常在于浏览器对请求类型的默认设置或限制,特别是在处理二进制数据流时。 #### 解决方案 ...
这个场景中提到的"js导出Excel和Word,不支持ie",指的是使用JavaScript在HTML页面前端实现Excel和Word文件的生成,但需要注意的是,这种方法可能不适用于已经过时的Internet Explorer浏览器。 1. **JavaScript导出...
文档中的代码示例展示了如何通过JavaScript和CSS来实现对IE6/7/8的支持。具体做法是使用`filter`属性结合`progid`来实现图像预览功能。这在现代浏览器中是不必要的,但对于老版本IE却非常重要。 ```html <!-- #...
在JavaScript中,读取Excel文件(.xls)并兼容多种浏览器,如Chrome、IE和Firefox,是一项常见的需求。这通常涉及到文件API、ActiveXObject(针对IE)和第三方库的使用。下面将详细介绍如何实现这一功能。 首先,...