令牌过期后未设置iframe src

时间:2016-06-30 23:35:39

标签: javascript jquery html azure iframe

我有一个使用Azure AD进行身份验证的网站,在该网站中我有一个iframe也使用Azure AD进行身份验证。我面临的问题是访问令牌在30-60分钟后到期,然后未经过身份验证,直到页面刷新。所以我编写了代码来刷新页面并将iframe的当前url存储在会话存储中,并在重新加载时将该url存放在iframe的src中。所有这些工作直到令牌过期,然后页面始终转到原始iframe源。这是代码:

PlotOptionsBar

如果有人可以帮我修改这段代码,那么无论iframe在会话存储中的哪个网址都会很棒。

1 个答案:

答案 0 :(得分:0)

似乎问题是当它触发refresh()时,它将最终刷新顶部窗口,因此所有脚本和DOM都将刷新并初始化。因此,您的iframe始终会转到原始页面。

请考虑以下代码段:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>

<script>
document.domain = 'company.com';
if (sessionStorage.getItem('url') == null) {
window.location;
 } else {
$("#MSOPageViewerWebPart_WebPartWPQ2").attr('src',sessionStorage.getItem('url'));
};
$(window).bind("load", function() {
sessionStorage.removeItem('url');
setTimeout(refresh, 30000);
});
function refresh () {
    console.log('refresh')
    var myURL = $("#MSOPageViewerWebPart_WebPartWPQ2").get(0).contentWindow.location;
    console.log(myURL);
    sessionStorage.setItem('url', myURL);
    console.log(sessionStorage.getItem('url'));
    // top.parent.location.href = top.parent.location.href;
 };
</script>