我需要将网页加载到iframe中。网页服务器由Open ID Connect保护,并且需要对承载令牌进行授权。对于要呈现的页面,还需要通过服务器发送数据。响应的内容也有一些JavaScript。 iframe src只允许使用一个GET方法提供不提供我们想要的内容的网址。
因此,总而言之,我需要:
答案 0 :(得分:0)
我采用的方法是使用AJAX发布来加载页面html和JavaScript的内容。获得内容后,我们便将内容写入iframe contentwindows。 我发现有其他替代方法: -使用表格发布。这不允许将令牌包含在授权标题中 -使用jQuery html方法。这不会触发iframe加载html。因此返回页面中的JavaScript无法正常工作。
工作示例:https://jsfiddle.net/duongthaiha/wmLsrfo0/52/
以下是一些代码段:
function loadHTMLToIframe(data) {
alert(data);
var iframe = document.getElementById('targetIframe');
var iframedoc = iframe.document;
if (iframe.contentDocument)
iframedoc = iframe.contentDocument;
else if (iframe.contentWindow)
iframedoc = iframe.contentWindow.document;
if (iframedoc){
// write content to the iframe
iframedoc.open();
iframedoc.writeln(data);
iframedoc.close();
//page loaded at this point
} else {
alert('Fail to get the content windows');
}
}
参考:http://thinkofdev.com/javascript-how-to-load-dynamic-contents-html-string-json-to-iframe/