- // setInnerHTML Sécurisé
- function setInnerHTML(divContent, HTML) {
- divContent.innerHTML=HTML;
- try {
- var All=divContent.getElementsByTagName("*");
- for (var i=0; i<All.length; i++) {
- All[i].id=All[i].getAttribute("id")
- All[i].name=All[i].getAttribute("name")
- // Correction pour activer les classes (plus mise à jour selon ce qui est demandé par les commentaires
- if (!All[i].className) { All[i].className=All[i].getAttribute("class") }
- }
- } catch (ex) {}
- try {
- //if (window.external && window.ActiveXObject && window.XMLHttpRequest) { throw ("IE7 : OK"); }
- var AllScripts=HTML.extractTags("script");
- var Before = new Array()
- AllScripts.forEach(function (v) {
- for (var i=0; i<Before.length; i++) {
- if (Before[i]==v) { return false; }
- }
- Before.push(v)
- setTimeout(v,0);
- //var script = document.createElement("script");
- //script.innerHTML=v;
- //document.body.appendChild(script);
- })
- } catch (ex) {}
- try {
- var AllStyles=HTML.extractTags("style");
- AllStyles.forEach(function (v) {
- var s=document.createStyleSheet()
- s.cssText=v;
- s.enabled=true;
- }, true)
- } catch (ex) {}
- }
-
- // EXTRAIT DE PROTOTYPE ET DE FREMYCOMPANY API FOR PROTOTYPE
-
- String.prototype.extractTags=function(tag) {
- var matchAll = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'img');
- var matchOne = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'im');
- return (this.match(matchAll) || []).map(function(scriptTag) {
- return (scriptTag.match(matchOne) || ['', ''])[1];
- });
- }
-
- Object.prototype.forEach=function(delegate, ownpropertiesonly) {
- if (typeof(delegate)=="function") {
- if (this instanceof Array && typeof(ownpropertiesonly)=="undefined") {
- ownpropertiesonly=true;
- }
- for (key in this) {
- var ok = (!ownpropertiesonly);
- if (!ok) {
- try {
- ok=this.hasOwnProperty(key)
- } catch (ex) {}
- }
- if (ok) {
- try { delegate(this[key], key, this) } catch(e) {
- // ...
- }
- }
- }
- }
- return false;
- }
-
- Object.prototype.map=function(iterator) {
- var results = [];
- this.forEach(function(value, index) {
- results.push(iterator(value, index));
- });
- return results;
- }
// setInnerHTML Sécurisé
function setInnerHTML(divContent, HTML) {
divContent.innerHTML=HTML;
try {
var All=divContent.getElementsByTagName("*");
for (var i=0; i<All.length; i++) {
All[i].id=All[i].getAttribute("id")
All[i].name=All[i].getAttribute("name")
// Correction pour activer les classes (plus mise à jour selon ce qui est demandé par les commentaires
if (!All[i].className) { All[i].className=All[i].getAttribute("class") }
}
} catch (ex) {}
try {
//if (window.external && window.ActiveXObject && window.XMLHttpRequest) { throw ("IE7 : OK"); }
var AllScripts=HTML.extractTags("script");
var Before = new Array()
AllScripts.forEach(function (v) {
for (var i=0; i<Before.length; i++) {
if (Before[i]==v) { return false; }
}
Before.push(v)
setTimeout(v,0);
//var script = document.createElement("script");
//script.innerHTML=v;
//document.body.appendChild(script);
})
} catch (ex) {}
try {
var AllStyles=HTML.extractTags("style");
AllStyles.forEach(function (v) {
var s=document.createStyleSheet()
s.cssText=v;
s.enabled=true;
}, true)
} catch (ex) {}
}
// EXTRAIT DE PROTOTYPE ET DE FREMYCOMPANY API FOR PROTOTYPE
String.prototype.extractTags=function(tag) {
var matchAll = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'img');
var matchOne = new RegExp('(?:<'+tag+'.*?>)((\n|\r|.)*?)(?:<\/'+tag+'>)', 'im');
return (this.match(matchAll) || []).map(function(scriptTag) {
return (scriptTag.match(matchOne) || ['', ''])[1];
});
}
Object.prototype.forEach=function(delegate, ownpropertiesonly) {
if (typeof(delegate)=="function") {
if (this instanceof Array && typeof(ownpropertiesonly)=="undefined") {
ownpropertiesonly=true;
}
for (key in this) {
var ok = (!ownpropertiesonly);
if (!ok) {
try {
ok=this.hasOwnProperty(key)
} catch (ex) {}
}
if (ok) {
try { delegate(this[key], key, this) } catch(e) {
// ...
}
}
}
}
return false;
}
Object.prototype.map=function(iterator) {
var results = [];
this.forEach(function(value, index) {
results.push(iterator(value, index));
});
return results;
}