【发布时间】:2011-01-05 12:30:15
【问题描述】:
喂,
在我的应用程序中,我将字符串存储为 html 文件的内容。
如何在浏览器中预览此内容(假设它是从原始内容修改的),而不必将其保存到本地磁盘。
预览在另一个选项卡或窗口中。
有人知道吗?
提前致谢。
杰夫
【问题讨论】:
标签: c# asp.net html browser preview
喂,
在我的应用程序中,我将字符串存储为 html 文件的内容。
如何在浏览器中预览此内容(假设它是从原始内容修改的),而不必将其保存到本地磁盘。
预览在另一个选项卡或窗口中。
有人知道吗?
提前致谢。
杰夫
【问题讨论】:
标签: c# asp.net html browser preview
将内容保存到 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>
创建一个 HTTP 处理程序,并在 IHttpHandler 的执行中从内存中提供 HTML 内容。在链接上使用正确的target 属性来强制客户端上的新选项卡/窗口。
(这基于问题上的asp.net 标记:您正在编写一个网站。如果这是一个本地应用程序(WinForms 或 WPF),那么您可以嵌入一个浏览器控件并将其NavigateToString 方法设置为HTML 文本。)
【讨论】:
IHttpHandler 页面包含指向演练(即结构化示例)和概述的链接。开头:msdn.microsoft.com/en-us/library/ms228090.aspx
我会使用 iframe 和一段 javascript。使用 javascript 和 document.write 填充 iframe 窗口。
【讨论】:
问题主要是如何打开一个新窗口?这取决于提示操作的原因。如果是超链接,只需添加target="_blank"。如果没有,或者您想对窗口进行更多控制,请使用 javascript。
显示内容而不将其保存到磁盘是服务器端代码的本质,如果不这样做,您将无法拥有网站。
Response.Write(myString)
【讨论】:
这是一个 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>
【讨论】: