0

我生成 HTML 内容并存储在一个 blob 上,然后我需要将其显示在 IFrame 中。这个 HTML 一直是静态 HTML,但现在我的页面使用了一些由第三方生成的 JavaScript(它只作用于页面本身)。使用 IE,此 JavaScript 在 IFrame 中被阻止(这在 Chrome 中不是问题) - 因此我需要找到一个解决方案,以便 IFrame 中的内容不会被阻止。

我考虑的一种方法是使用 CustomHandler 来解决这个问题。因此,我的处理程序可以处理以“/blob”开头的请求,然后从 blob 下载内容(HTML 页面或图像)并将其服务器化,以便浏览器看起来它来自同一服务器。这是在这里采取的好方法吗?

如果是,那么 ProcessRequest 是否应该简单地下载(HTML 或图像)并将其保存到 context.Response.OutputStream(相应地设置 ContentType)。从 blob 获取数据并提供数据的最佳方法是什么?

4

1 回答 1

0

不要将 iframe 用于您自己的内容。如果您想要一个可滚动的区域,请使用 CSS:

.containerContentScroll {  overflow: auto;  height: 500px;  scrollbar-base-color: #963; }

此外,所有 Azure blob 内容都可以通过 URL 引用,您可以这样做:

<iframe src="http://myblob.blob.core.windows.net/.../image.png />

最后,如果您需要 iFrame 和跨域脚本,请参阅这篇 SO 帖子了解如何在 MVC 中启用它以及这篇关于 XDomainRequest 对象的文章

更新- 刚刚通过 Access-Control-Allow-Origin 标头发现跨域资源共享 (CORS) 是 Azure 存储的计划功能 - 在这里投票

于 2013-03-11T14:42:38.560 回答