IE9 - DOM Exception: INVALID_CHARACTER_ERR

Hello support-team,

we test your vault-extensions out and think about to buy a license, but we have a problem with IE9. With FireFox newest version and other browsers all works.

IE9 - F12 Developer-Tools - Debugging

SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5)
dhtmlxvault.js, Row 26 Character 569

if (this.IE){this.uploadForm = document.createElement("<form enctype='multipart/form-data' target='dhtmlxVaultUploadFrame' method='post'>")

I try to find a hotfix or something, but i get no result in blog or forum, how to fix this error.
May be the support-team know about this mistake and have a solution, if not i hope, this code-snippet helps a little.

We have another problem with IE9, we know, it`s not for this part of your forum…
The grid event onEnter has no effect.

FYI: Hot Fix for IE9 is in use.
Our License: dhtmlxSuite PRO Commercial (up to Vers. 2.6)

Thanks hopsy

Dear Support-Team,

dhtmlx.com/docs/products/dht … ndex.shtml

… same error with IE9 on your dhtmlxVault-demo-site.

с большим приветом
hopsy

Hello,
you can’t add a file with IE9 - your vault demo - are you not interested?
ciao hopsy

Please find a this line in src:
if (this.IE) { this.uploadForm = document.createElement("<form enc …

and replace it with if (false) …

(there is no specific code required for IE.)

We will officially push an update very soon. Sorry for this.

Grazie mille!
ciao hopsy

Another option is to switch to compatibility mode. Unfortunately, that’s only a client-side fix, though you can apparently force IE into compatibility mode based on how you serve up the page.
See : stackoverflow.com/questions/1014 … blity-mode

Before IE9, and possibly IE8 (can’t remember, too lazy to check), IE accepted document.createElement(’’);, which isn’t how the standard works. Unfortunately, if you wanted to include some attributes, like name="", you had to use that method, because IE didn’t support setting the name of an element via javascript.

So, their naive check of just if(this.IE){} causes IE 9, which managed to finally implement createElement() correctly, to choke on the bad code. Switching to compatibility mode forces IE to accept the non-standard code, which is why it would continue to work.

Sadly, determining whether or not the browser is in compatibility mode is non-trivial. I’ve seen a few hacks that might work, but I haven’t seen anything concrete that I feel confident will reliably determine whether or not the browser is in compatibility mode.

I have a workaround:

dhtmlxvault.js line 26:

... if (this.IE) { this.uploadForm = doc_form() } else {...
...
function doc_form() {
     var docform = document.createElement("form");
     docform.setAttribute("enctype", "multipart/form-data");
     docform.setAttribute("target", "dhtmlxVaultUploadFrame");
     docform.setAttribute("method", "post");
     return docform;
}

instead of

... if (this.IE){this.uploadForm = document.createElement("<form enctype='multipart/form-data' target='dhtmlxVaultUploadFrame' method='post'>")}else {...

DHTMLX Team,
Is there any plan to get this update out? The suggested fix from another user has helpped me keep things running in IE9, but i would prefer to implement an updated version of the dhtmlx Vault if possible to avoid future instances of missing this or other IE9 issues.

Thanks