Commit f55aeaf7 authored by Sven Franck's avatar Sven Franck

fwd postMessage to preview gadget, digest and display

parent ad7d15e1
......@@ -3,6 +3,23 @@
"use strict";
(function (document, $) {
var myIndexOf = function (path, contains) {
var len = path.length;
var wordLen = contains.length;
for(var i = 0; i < len; i++) {
var j = 0;
for(j = 0; j < wordLen; j++) {
if(path[i+j] != contains[j]) {
break;
}
}
if(j == wordLen) {
return i;
}
}
return -1;
};
var getParameter = function(searchString, paramName) {
var i, val, params = searchString.split("&");
......@@ -15,10 +32,19 @@
return null;
};
// this is our "interactor", it only knows one other iFrame
// so we post to this one!
var handler = function (event) {
console.log(event.data);
console.log("hello inside handler");
console.log(event);
var frames = document.getElementsByTagName("iframe"), frame, i;
for (i = 0; i < frames.length; i += 1) {
frame = frames[i];
if (myIndexOf(
event.source.location.pathname,
frame.getAttribute("src").split("?")[0]
) < 0) {
frame.contentWindow.postMessage(event.data, window.location.href);
}
}
};
var mapUrl = function (url) {
......
......@@ -8,49 +8,81 @@
/*global document, jQuery */
"use strict";
(function (document, $) {
$(document).ready(function () {
var mapUrl = function (url) {
var searchString = url.href.split("?")[1],
fileToDisplay;
if (searchString) {
fileToDisplay = getParameter(searchString, "file");
if (fileToDisplay) {
$.ajax({
method: 'GET',
url: fileToDisplay,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
if (value === "") {
$(this).text("file not found");
} else {
$(this).text(value);
}
},
});
var ajaxGet = function (src, cb) {
$.ajax({
method: 'GET',
url: src,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
cb(value, textStatus, jqXHR);
}
});
};
var handler = function (event) {
ajaxGet(event.data, function(value, status, jqXHR) {
ajaxGet(value._links.enclosure.href, function(value, status, jqXHR) {
if (value === "") {
window.document.body.innerHTML = "file not found";
} else {
window.document.body.innerHTML = value;
}
} else {
$(this).text("no file to display");
});
});
}
var mapUrl = function (url) {
var searchString = url.href.split("?")[1],
fileToDisplay;
if (searchString) {
fileToDisplay = getParameter(searchString, "file");
if (fileToDisplay) {
$.ajax({
method: 'GET',
url: fileToDisplay,
context: $('body'),
error: function (jqXHR, textStatus, errorThrown) {
$(this).text(errorThrown);
},
success: function (value, textStatus, jqXHR) {
if (value === "") {
$(this).text("file not found");
} else {
$(this).text(value);
}
},
});
}
};
} else {
$(this).text("no file to display");
}
};
var getParameter = function(searchString, paramName) {
var i, val, params = searchString.split("&");
var getParameter = function(searchString, paramName) {
var i, val, params = searchString.split("&");
for (i=0;i<params.length;i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return decodeURIComponent(val[1]);
}
for (i=0;i<params.length;i++) {
val = params[i].split("=");
if (val[0] == paramName) {
return decodeURIComponent(val[1]);
}
return null;
};
}
return null;
};
$(document).ready(function () {
// mapUrl(window.location);
mapUrl(window.location);
if (window.addEventListener){
window.addEventListener("message", handler, false)
} else {
window.attachEvent("onmessage", handler)
}
});
}(document, jQuery));
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment