【问题标题】:Displaying local htm file in iframe?在 iframe 中显示本地 htm 文件?
【发布时间】:2012-06-24 12:15:33
【问题描述】:

我正在使用 htm 格式的 MailBee.NET 对象在我的本地计算机上保存一些电子邮件。例如,使用服务器上的电子邮件 messageID 为每封电子邮件创建一个单独的文件夹

D:\Emails\GmailId1380ec660e0e656a\doc.htm

是从 gmail 下载的电子邮件。我还将上述路径保存在数据库中,以便以后使用。现在我试图在 iframe 中显示这个 htm 文件,但它不起作用。用户单击电子邮件,将他带到我试图将上述路径分配给 iframe 但 iframe 保持空白的 read_email 页面。

emailMessage.Attributes.Add("src",commandReader["email_message_path"].ToString());

emailMessage 是 iframe 的名称,commandReader 是普通的 SqlDataReader,我使用它来读取上述文件的路径,然后将该路径分配给 iframe 的 src 属性,我已将此代码放在 page_load 事件中。

但正如我所说,Iframe 仍然是空白的。请帮帮我。

谢谢。

【问题讨论】:

  • 发布 commandReader["email_message_path"].ToString() 的结果。也许问题就在那里。
  • 使用 Response.Write(commandReader["email_message_page"].ToString()),我得到 D:\Emails\GmailId1380ec660e0e656a\doc.htm

标签: html iframe path src pageload


【解决方案1】:

使用file URI 方案引用本地文件。如果您的电子邮件路径只有D:\Emails\...,那么您必须在其前面加上file://

file://D:\Emails\...

请注意,大多数浏览器会阻止您包含来自远程网站本地文件!.

【讨论】:

  • 但是该网站也在使用 ASP.net 开发服务器的我的开发机器上运行,即使在部署后它也将在本地服务器上运行,电子邮件也将在该服务器上下载(该网站旨在仅供内部办公使用)。控制台应用程序用于定期下载电子邮件并创建数据库条目(通过任务调度程序运行),并且该网站用于阅读这些电子邮件。
  • 在本地运行并不意味着您可以使用file:// 方案包含文件,事实上Mozilla 的浏览器将不会遵循file:// 链接@987654321 @。如果生产服务器是最终存储电子邮件的同一台远程计算机,file:// 将不起作用,因为它总是指的是客户端的本地文件系统!我建议您改为通过 HTTP 提供 HTML 邮件文件。
  • 好的,我测试了一些东西,如果我在简单的 htm 文件中使用 iframe,那么它会成功调用其他 htm(电子邮件文件),它甚至不需要 file:/// 前缀,简单的路径如D:\\emails\\emailID\\doc.htm 有效。但是如果我在 aspx 文件中使用相同的 iframe,那么它仍然是空白的。我尝试放置/删除 runat="server" 属性,尝试硬编码 src 路径,还尝试使用你们建议的 file:/// 前缀,但没有任何效果。但是加载一些 http://.... 页面可以在 aspx 文件中使用。我猜它的安全问题,在我放弃下载电子邮件的想法之前还有其他建议吗?
【解决方案2】:

您是否尝试将file:/// 放在文件路径之前? 赞file:///D:\Emails\GmailId1380ec660e0e656a\doc.htm

【讨论】:

  • 由于某种原因,即使路径是你告诉我的 file:///D:\Emails\GmailId1380ec660e0e656a\doc.htm,它也没有显示出来,令人惊讶的是,将这个路径直接放在 src 属性中iframe 也不起作用,但在 Visual Studio 中,如果您 ctrl + 单击链接,它会打开正确的 htm 文件,这意味着路径是正确的。这真的很奇怪。
  • @user1469130 如果路径中间有#@[],会发生什么?
猜你喜欢
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-27
  • 2016-06-05
  • 1970-01-01
  • 2012-07-24
相关资源
最近更新 更多