Javascript名称空间和IE7的问题

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)

基于对另一个堆栈溢出问题的回答,我实现了一个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) {
    // 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... 
  }
};