Is it possible to make a page viewer webpart automatically refresh or upgrade?
I have a report image which I am replacing every 15 minutes with a script but the Page Viewer on SharePoint isn't updating to reflect.
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It only takes a minute to sign up.
Sign up to join this communityIs it possible to make a page viewer webpart automatically refresh or upgrade?
I have a report image which I am replacing every 15 minutes with a script but the Page Viewer on SharePoint isn't updating to reflect.
You could simply apply your settings and add this snippet to your page:
(function () {
//this snippet reloads an iframe on the page in a set interval
function getIFrameBySrc(src){
var matchingElements = [];
//shim for querySelector heavily stolen from http://stackoverflow.com/questions/9496427/can-i-get-elements-by-attribute-selector-when-queryselectorall-is-not-available
if(typeof document.querySelector == "undefined") {
var allElements = document.getElementsByTagName('*');
for (var i = 0, n = allElements.length; i < n; i++)
{
console.log(allElements[i]);
if (allElements[i].getAttribute('src') === src)
{
// Element exists with attribute. Add to array.
matchingElements.push(allElements[i]);
}
}
} else{
matchingElements = document.querySelectorAll('iframe[src-' + src + ']');
}
return matchingElements;
}
var iframes = getIFrameBySrc('http://www.w3schools.com'); //add the target url here
function reloadIframe(){
for(var i = 0; i < iframes.length; i++){
//better but only works on same origin pages
/*iframes[i].contentWindow.location.reload(true);*/
//does not work in certain versions of chrome
iframes[i].src = iframes[i].src;
//more info here
// http://stackoverflow.com/questions/2064850/how-to-refresh-an-iframe-using-javascript
}
}
//if used on mds pages you need to check before setting this up multiple times
setInterval(reloadIframe, 5000);//time in ms it takes to refresh
}());
Remember to check if you already attached a interval for MDS pages.
Rather than use the Page Viewer Web Part you could use the HTML Form Web Part and put the required javascript and iframe in to make this happen.