I implemented a Javascript namespacing solution based on this answer to another stack overflow question: How do I declare a namespace in JavaScript?
Let's call this 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...
}
};
I include this script in my page, plus other stuff:
<!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>
...etc...
It works fine in Firefox, IE8, Chrome, Opera... but fails in IE7 with the message "ISIGMA is not defined" - referring to the line where I make a reference to ISIGMA.SIGN
.
Any hints about what can be wrong here? Is there anything wrong with IE7 processing order of Javascript files? Any other guess?
Note: for a full reference, the whole thing is running in http://app.portasigma.com/isme/signwidget/iframe/ and the namespace JS file is really named http://app.portasigma.com/isme/media/signwidget/jquery-isigmaWidget.js