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 : '');
   }


Reply via email to