Use iframe for crossite loading instead of CORS header

This commit is contained in:
Fabio Comuni 2011-10-19 11:43:45 +02:00
parent 255685c176
commit a3eb7268ae
5 changed files with 39 additions and 49 deletions

View file

@ -1,26 +1,16 @@
/**
* @author Fabio Comuni
*/
var f9a_widget_$widget_id = {
width: "$width",
height: "$height",
entrypoint : "$entrypoint",
key : "$key",
widgetid: "$widget_id",
argstr: "$args",
xmlhttp : null,
getXHRObj : function(){
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
this.xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
},
dorequest : function(args, cb) {
if (args===null) args = new Array();
load : function() {
var args = new Array();
args['k']=this.key;
args['s']=window.location.href;
args['a']=this.argstr;
@ -31,36 +21,17 @@ var f9a_widget_$widget_id = {
}
var url = this.entrypoint + "?"+ urlencodedargs.join("&");
this.xmlhttp.open("GET", url ,true);
this.xmlhttp.send();
this.xmlhttp.obj = this;
this.xmlhttp.onreadystatechange=function(){
if (this.readyState==4){
if (this.status==200) {
cb(this.obj, this.responseText);
} else {
document.getElementById(this.obj.widgetid).innerHTML="Error loading widget.";
}
}
}
},
requestcb: function(obj, responseText) {
document.getElementById(obj.widgetid).innerHTML=responseText;
},
load : function (){
this.getXHRObj();
this.dorequest(null, this.requestcb);
console.log(this.widgetid);
console.log(document.getElementById(this.widgetid));
document.getElementById(this.widgetid).innerHTML = '<iframe style="border:0px; width: '+this.width+'; height:'+this.height+'" src="'+url+'"></iframe>';
}
};
document.writeln("<div id='$widget_id' class='f9k_widget $type'>");
document.writeln("<img id='$widget_id_ld' src='$loader'>");
document.writeln("</div>");
(function() {
f9a_widget_$widget_id.load();
})();
document.writeln("<div id='$widget_id' class='f9k_widget'>");
document.writeln("<img id='$widget_id_ld' src='$loader'>");
document.writeln("</div>");