如何在另一个选项卡/窗口中预览html文件而不将其保存在磁盘上?

时间:2011-01-05 12:30:15

标签: c# asp.net html browser preview

HY,

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

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

预览位于另一个标签页或窗口中。

有没有人有任何想法?

提前致谢。

杰夫

6 个答案:

答案 0 :(得分:2)

将内容保存到Session变量并创建一个虚拟页面,并从Page Load事件中的Session变量加载到内容。

创建临时内容的位置

Session["TempPage"] = Content;

然后让ShowTempPage.aspx为空,其中包含Page Load事件后面的代码:

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

这样的东西可以起作用..

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

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

答案 1 :(得分:1)

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

问题主要是如何打开一个新窗口?这取决于提示操作的内容。如果是超链接,只需添加target="_blank"即可。如果没有,或者你想要更多地控制窗口,那么使用javascript。

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

回复于(myString的)

答案 5 :(得分:0)

这是一个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>