Hi Manuel,
the reported error is returned because Chrome changed the "createDocument" method in order to manage the blob objects.
This error is returned in the pages in which there is a form with a blob field and after an Ajax event.
The official fix will be released with the next update of WebRatio.
In the meantime in order to obtain the correct behavior you have to follow these suggestions:
WebRatio 6.x
Edit the wrajaxrequest.js file in WRResourcesajaxwebratio folder of the deployed webapp by replacing this row
cloned = document.implementation.createDocument();
with
cloned = document.implementation.createDocument(doc.documentElement.namespaceURI, doc.documentElement.nodeName);
This customized file may be stored in WebContentWRResourcesajaxwebratio folder of the Web project (if needed, add the missing subfolders to this) in this way when you perform the deploy this file will be updated. When the update of WebRatio will be available you have to remove this file from the WebContent folder in order to avoid conflicts.
WebRatio 7.x
Include the following code in the head of the page template as last instruction immediately before the head tag closure.
<head>
.....
<script>
(function($) {
$(document).on("ajaxSend", function(e, deferred, options) {
options.xhr = wrapXHR(options.xhr);
});
function wrapXHR(xhrFactory) {
return function() {
var xhr = xhrFactory.apply(this, $.makeArray(arguments));
var origOpen = xhr.open;
xhr.open = function() {
var result = origOpen.apply(this, $.makeArray(arguments));
fixFrames();
return result;
}
return xhr;
}
}
function fixFrames() {
$("#wr-ajaxFramesDiv > iframe").each(function() {
if ("contentWindow" in this && "addEventListener" in this) {
this.addEventListener("load", function() {
fixWindow(this.contentWindow);
}, true);
}
});
}
function fixWindow(win) {
if (!("DOMImplementation" in win)) {
return;
}
win.DOMImplementation.prototype.createDocument = (function() {
var orig = win.DOMImplementation.prototype.createDocument;
return function(ns, name, doctype) {
if (!ns && !name) {
var docEl = win.document.documentElement;
ns = docEl.namespaceURI;
name = docEl.nodeName;
}
return orig.call(this, ns, name, doctype);
};
})();
}
})(jQuery);
</script>
.....
</head>
It is advisable to include the code in an external file.
To ensure that file is loaded after jQuery, you have to:
- define the code as a resource (in version 7.2) and add a requirement for jquery,
- place a script tag immediately after the wr:Resources tag (in 7.2) or wr:LinkedResources tag (in 7.1 and earlier).
I hope this will help you.