Javascript名称空间和IE7的问题
基于对另一个堆栈溢出问题的回答,我实现了一个Javascript名称空间解决方案: 我们称之为isigma-ns.js:Javascript名称空间和IE7的问题,javascript,namespaces,internet-explorer-7,Javascript,Namespaces,Internet Explorer 7,基于对另一个堆栈溢出问题的回答,我实现了一个Javascript名称空间解决方案: 我们称之为isigma-ns.js: var ISIGMA = { messages: { noValidId: "No valid ID found", reason: "Reason", // etc... }, language: "ca", SIGN: 2, PAUSE: 400, params: {}, init: function(params)
var ISIGMA = {
messages: {
noValidId: "No valid ID found",
reason: "Reason",
// etc...
},
language: "ca",
SIGN: 2,
PAUSE: 400,
params: {},
init: function(params) {
// etc...
},
delay: function(callback) {
// etc...
},
// etc...
signURL: function(cert, url) {
// etc...
}
};
我将此脚本包括在我的页面中,以及其他内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Isigma Signature Widget</title>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
<!-- Required javascript and styles for isigma widget-->
<script type="text/javascript" src="/isme/media/signwidget/jquery-1.4.4.min.js"></script>
<script type="text/javascript" src="/isme/media/signwidget/isigma-ns.js"></script>
<script type="text/javascript">
$(function(){
$("#applet").isigmaSignatureApplet({
purpose: ISIGMA.SIGN,
url: the_url,
language: 'es'
});
});
</script>
Isigma签名小部件
$(函数(){
$(“#小程序”).isigmaSignatureApplet({
目的:ISIGMA.SIGN,
url:,
语言:“es”
});
});
……等等
它在Firefox、IE8、Chrome、Opera中运行良好。。。但在IE7中失败,消息为“ISIGMA未定义”-指的是我引用的ISIGMA.SIGN
有什么关于这里可能出错的提示吗?Javascript文件的IE7处理顺序是否有问题?还有其他猜测吗
注意:对于完整引用,整个过程都在运行,名称空间JS文件的名称为,您需要在定义所有属性/方法之后删除最后一个逗号 IE的旧版本被这个问题扼杀了
var ISIGMA = {
messages: {
noValidId: "No valid ID found",
reason: "Reason",
// etc...
},
language: "ca",
SIGN: 2,
PAUSE: 400,
params: {},
init: function(params) {
// etc...
},
delay: function(callback) {
// etc...
},<====-- if this is the LAST property/method, you need to omit the comma.
// etc...
};
var-ISIGMA={
信息:{
NovalID:“未找到有效ID”,
理由:“理由”,
//等等。。。
},
语言:“ca”,
符号:2,,
暂停:400,
参数:{},
初始化:函数(参数){
//等等。。。
},
延迟:函数(回调){
//等等。。。
},
在定义了所有属性/方法之后,需要删除最后一个逗号
IE的旧版本被这个问题扼杀了
var ISIGMA = {
messages: {
noValidId: "No valid ID found",
reason: "Reason",
// etc...
},
language: "ca",
SIGN: 2,
PAUSE: 400,
params: {},
init: function(params) {
// etc...
},
delay: function(callback) {
// etc...
},<====-- if this is the LAST property/method, you need to omit the comma.
// etc...
};
var-ISIGMA={
信息:{
NovalID:“未找到有效ID”,
理由:“理由”,
//等等。。。
},
语言:“ca”,
符号:2,,
暂停:400,
参数:{},
初始化:函数(参数){
//等等。。。
},
延迟:函数(回调){
//等等。。。
},
是“原因”后面的逗号。请参见:
编辑:在您的live站点上,我看到的额外逗号位于:
被另一个人锁定的文件:“这个
文档当前已被锁定
其他用户,请稍后再试“
是“原因”后面的逗号。请参见:
编辑:在您的live站点上,我看到的额外逗号位于:
被另一个人锁定的文件:“这个
文档当前已被锁定
其他用户,请稍后再试“
您有两个外部脚本正在加载,然后立即运行一个内联脚本。脚本可以异步加载,甚至根本无法加载。浏览器可以在继续下一个脚本之前完成单个任务并加载一个脚本,并且可以运行多个并发请求,也可以o在继续解析内联脚本之前,请等待所有外部请求完成;但您几乎没有(如果有的话)控制任何特定浏览器决定实现哪些选项。我没有IE7,因此无法尝试查看其操作是否与IE8不同。在运行内联脚本之前,应确保第二个脚本已完全加载。您有两个外部脚本加载,然后立即运行内联脚本。脚本可以n异步加载,甚至根本无法加载。浏览器可以在执行下一个脚本之前完成单个任务并加载一个脚本,也可以运行多个并发请求,并且可以等待所有外部请求完成后再继续解析内联脚本;br你没有多少(如果有的话)控制任何特定浏览器决定实现哪些选项。我没有IE7,因此无法尝试查看其操作是否与IE8不同。在运行内联脚本之前,您应该确保第二个脚本已完全加载。我的完整文件中没有最后一个逗号,我将根据以下内容更新示例:全部事情正在运行,名称空间JS文件的名称是真的。我建议在IE7中安装“Microsoft IE developer toolbar”…它可能会显示错误的实际位置。(我没有访问IE7 ATM的权限)谢谢,我想问一下是否存在这样一个问题……我通常使用Firefox开发,使用Firebug调试,还使用了IE8的开发者扩展,但不知道IE7的等效版本。我的完整文件中没有最后一个逗号,我将根据以下内容更新示例:整个程序正在运行,名称空间JS文件的名称也确实是这样的我建议在IE7中安装“Microsoft IE开发者工具栏”…它可能会显示错误的实际位置。(我没有访问IE7 ATM的权限)谢谢,我想问一下是否存在这种情况…我通常使用Firefox开发,使用Firebug调试,还使用了IE8的开发者扩展,但不知道IE7的等效版本。
<script src="..."></script><!--correct-->
var ISIGMA = {
messages: {
noValidId: "No valid ID found",
reason: "Reason"
// etc...
},
language: "ca",
SIGN: 2,
PAUSE: 400,
params: {},
init: function(params) {
// etc...
},
delay: function(callback) {
// etc...
},
// etc...
signURL: function(cert, url) {
// etc...
}
};