Author: bhofmann
Date: Wed Apr 20 07:03:48 2011
New Revision: 1095301
URL: http://svn.apache.org/viewvc?rev=1095301&view=rev
Log:
Fixed bug in shindig-container: refreshing already rendered gadets did not work
in some browsers (e.g. chrome) because the iframe src did not change on
refresh. added a random cache buster to the iframe url to prevent this.
Modified:
shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js
Modified:
shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js
URL:
http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js?rev=1095301&r1=1095300&r2=1095301&view=diff
==============================================================================
---
shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js
(original)
+++
shindig/trunk/features/src/main/javascript/features/shindig.container/shindig-container.js
Wed Apr 20 07:03:48 2011
@@ -642,7 +642,10 @@ shindig.BaseIfrGadget.prototype.handleCa
shindig.BaseIfrGadget.prototype.refresh = function() {
var iframeId = this.getIframeId();
- document.getElementById(iframeId).src = this.getIframeUrl();
+ // we have to add a random value to the iframe url because otherwise
+ // some browsers would not refresh the since the iframe src would remain the
+ // same
+ document.getElementById(iframeId).src = this.getIframeUrl(Math.random());
};
shindig.BaseIfrGadget.prototype.queryIfrGadgetType_ = function() {
@@ -714,7 +717,7 @@ shindig.IfrGadget = {
window.frames[this.getIframeId()].location = this.getIframeUrl();
},
- getIframeUrl: function() {
+ getIframeUrl: function(random) {
return this.serverBase_ + 'ifr?' +
'container=' + this.CONTAINER +
'&mid=' + this.id +
@@ -731,6 +734,7 @@ shindig.IfrGadget = {
'&url=' + encodeURIComponent(this.specUrl) +
(this.viewParams ?
'&view-params=' +
encodeURIComponent(gadgets.json.stringify(this.viewParams)) : '') +
+ (random ? '&r=' + random : '') +
'#rpctoken=' + this.rpcToken +
(this.hashData ? '&' + this.hashData : '');
}
@@ -783,7 +787,7 @@ shindig.OAAIfrGadget = {
);
},
- getIframeUrl: function() {
+ getIframeUrl: function(random) {
return this.serverBase_ + 'ifr?' +
'container=' + this.CONTAINER +
'&mid=' + this.id +
@@ -801,6 +805,7 @@ shindig.OAAIfrGadget = {
// '#rpctoken=' + this.rpcToken +
(this.viewParams ?
'&view-params=' +
encodeURIComponent(gadgets.json.stringify(this.viewParams)) : '') +
+ (random ? '&r=' + random : '') +
// (this.hashData ? '&' + this.hashData : '');
(this.hashData ? '#' + this.hashData : '');
}