使用来自ITHit.WebDAV.Client.DocManager.EditDocument()
的IE8 中的ITHitWebDAVClient.js v1.6.0.1174调用iframe
时,浏览器会显示混合内容警告,如下所示:
要继续,用户必须点击No
。我怎样才能解决这个问题?我从HTTPS站点(例如EditDocument()
)调用https://testfilebrowser.com/
,提供给EditDocument()
的文件URL是实现为HTTPListener
的HTTPS WebDAV URL(例如:{{ 1}})。站点URL和WebDAV URL位于两个不同的域中。
我还尝试在IIS中与调用者在同一网站上实现WebDAV服务器,以便它们位于同一个域中。那也行不通。例如:HTTPS站点呼叫者https://webdavhttplistener.com/folder/file.xlsx
和文件URL https://testfilebrowser.com/
我知道最终用户可能会选择通过调整浏览器安全设置来抑制混合内容警告,但这不是我正在寻找的解决方案。有没有办法确保在从https://testfilebrowser.com/DAV/folder/file.xlsx
调用EditDocument()
时根本不显示混合内容警告?
答案 0 :(得分:1)
从EditDocument()
内部调用iframe
会在IE8中显示混合内容警告。解决此问题的一种方法是使用ITHit
之外的iframe
实例来调用EditDocument()
。
例如:
<!-- include ITHitWebDAVClient.js on parent page outside of iframe -->
<script src="ITHitWebDAVClient.js"></script>
<iframe src="...">
<button onclick="editDocument();">Edit</button>
<script>
function editDocument() {
/*
* grab ITHit instance from parent when this executes inside iframe so that
* a mixed content warning is not shown in IE8 when calling EditDocument()
*/
if (window.parent !== window && typeof window.parent.ITHit !== 'undefined') {
// use parent's ITHit instance
ITHit = window.parent.ITHit;
// call EditDocument()
ITHit.WebDAV.Client.DocManager.EditDocument(path)
}
}
</script>
</iframe>