【问题标题】:How to preview a html file in another tab/window without saving it on disk?如何在另一个选项卡/窗口中预览 html 文件而不将其保存在磁盘上?
【发布时间】:2011-01-05 12:30:15
【问题描述】:

喂,

在我的应用程序中,我将字符串存储为 html 文件的内容。

如何在浏览器中预览此内容(假设它是从原始内容修改的),而不必将其保存到本地磁盘。

预览在另一个选项卡或窗口中。

有人知道吗?

提前致谢。

杰夫

【问题讨论】:

    标签: c# asp.net html browser preview


    【解决方案1】:

    将内容保存到 Session 变量并制作一个虚拟页面并在 Page Load 事件中从 Session 变量加载到内容。

    创建临时内容的位置

    Session["TempPage"] = Content;
    

    然后有一个为空的 ShowTempPage.aspx,其中包含页面加载事件后面的代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Session["TempPage"]);
    }
    

    类似的东西可以工作..

    更新: 要在新窗口中打开临时页面,请在主页上创建如下链接:

    <a href="http://localhost/ShowTempPage.aspx" target="_blank">View temp Page</a>
    

    【讨论】:

    • 是的..我试过了,它在同一个窗口/标签中打开..我需要它在另一个窗口/标签中打开
    • 正如我所说.. html 内容可能会从用户界面修改,这意味着当用户按下某个按钮时,我会使用一些客户端脚本 (javascript) 读取 html 内容并将其返回到后面的代码。那么,我如何使用 ,因为它没有方法?
    • 我开始对您在这里真正想要做什么感到有些困惑。您的问题中根本没有提到 JavaScript 和客户端脚本。请编辑您的问题并准确定义您的解决方案的外观以及您想要完成的任务。这将使任何人更容易回答您的问题,而不是在这里和那里在 cmets 中进行小的更新:)
    【解决方案2】:
    【解决方案3】:

    创建一个 HTTP 处理程序,并在 IHttpHandler 的执行中从内存中提供 HTML 内容。在链接上使用正确的target 属性来强制客户端上的新选项卡/窗口。

    (这基于问题上的asp.net 标记:您正在编写一个网站。如果这是一个本地应用程序(WinForms 或 WPF),那么您可以嵌入一个浏览器控件并将其NavigateToString 方法设置为HTML 文本。)

    【讨论】:

    【解决方案4】:

    我会使用 iframe 和一段 javascript。使用 javascript 和 document.write 填充 iframe 窗口。

    【讨论】:

    • 我没有使用 windows 窗体,c# 中的 asp.net Web 应用程序
    • 啊,对不起,我读得很快……在那种情况下,我会使用 iframe 和一段 javascript。使用 javascript 和 document.write 填充 iframe 窗口。
    【解决方案5】:

    问题主要是如何打开一个新窗口?这取决于提示操作的原因。如果是超链接,只需添加target="_blank"。如果没有,或者您想对窗口进行更多控制,请使用 javascript。

    显示内容而不将其保存到磁盘是服务器端代码的本质,如果不这样做,您将无法拥有网站。

    Response.Write(myString)

    【讨论】:

      【解决方案6】:

      这是一个 Javascript/JQuery 解决方案:

      <!DOCTYPE html>
      <html>
      <head>
      <title>Open Custom HTML Page Without Saving</title>
      <meta charset='utf-8'>
      <meta name='viewport' content='initial-scale=1.0'>
      <script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'></script>
      <script type='text/javascript'>
      $(document).ready(function() {
        $('.preview-site').on('click', function(){
          window.open('javascript:document.write("'+ $('.workflow').val() +'")', 'Opened Page', 'width=660, height=440');
          return false;
        });
      });
      </script>
      </head>
      <body>
      <a class="preview-site" title="Preview your workflow" href="javascript:void(0)">Preview your workflow</a><br/>
      
        <textarea class="workflow"><!DOCTYPE html>
      <html>
      <head>
      <title>Hello world!</title>
      <meta charset='utf-8'>
      <meta name='viewport' content='initial-scale=1.0'>
      </head>
      <body>
        <h1>Hello World!</h1>
      </body>
      </html></textarea>
      </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        • 2015-12-14
        • 2015-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多