2011-01-05 16 views
0

Hy、別のタブ/ウィンドウでhtmlファイルをディスクに保存せずにプレビューする方法はありますか?

私のアプリケーションでは、文字列をhtmlファイルのコンテンツとして保存します。

このコンテンツをブラウザでプレビューすることはできますが(元のコンテンツから変更されていると仮定します)、ローカルでディスクに保存する必要はありません。

プレビューは別のタブまたはウィンドウに表示されます。

誰にも分かりませんか?

ありがとうございます。

ジェフ

答えて

2

セッション変数にコンテンツを保存し、ダミーページを作成して、ページ変数イベントのセッション変数からコンテンツに読み込みます。

あなたの一時コンテンツが

Session["TempPage"] = Content; 

を作成している

し、ページのLoadイベントの背後にあるコードと空である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> 
+0

yep ..私はこれを試しました、それは同じウィンドウ/タブで開きます。別のウィンドウ/タブで開く必要があります –

+0

私の更新を参照してください..私は言ったように – StefanE

+0

.. HTMLコンテンツはそれはユーザーがいくつかのボタンを押したときに、何らかのクライアントスクリプト(javascript)でhtml comntentを読んで、それをコードの後ろの文字列に戻すことを意味します。それで、方法がないので、をどうすれば使えますか? –

1

HTTPハンドラを作成し、IHttpHandlerの実装では、メモリからのHTMLコンテンツを提供します。リンク上の正しいtarget属性を使用して、クライアント上で新しいタブ/ウィンドウを強制します。

(Webサイトを作成している場合は、asp.netタグに基づいています。ローカルアプリケーション(WinFormsまたはWPF)の場合は、ブラウザコントロールを埋め込み、NavigateToStringメソッドをHTMLテキストに設定できます。)

+0

あなたは、このためのいくつかのコードを与えることができますか?私はasp.netのウェブサイトを持っています –

+0

MSDNのリンクされた 'IHttpHandler'ページにはウォークスルーへのリンクがあります。構造化されたサンプル)と概要。で始まる:http://msdn.microsoft.com/en-us/library/ms228090.aspx – Richard

1

私はiframeとjavascriptを使用します。 iframeウィンドウを埋めるにはjavascriptとdocument.writeを使います。

+0

私はWindowsフォームを使用していない、Cでasp.net Webアプリケーション# –

+0

ああ、すみません、私はそれを素早く読んでいます...その場合は、iframeとjavascriptを使用します。 iframeウィンドウを埋めるにはjavascriptとdocument.writeを使います。 –

1

ほとんどの場合、新しいウィンドウを開く方法は問題ですか?これはアクションを促すものに依存します。ハイパーリンクの場合は、target="_blank"を追加してください。そうでない場合や、ウィンドウをより詳細に制御したい場合は、javascriptを使用してください。

ディスクに保存しないでコンテンツを表示することは、サーバー側コードの本質であり、これを行わないとWebサイトを作成することはできません。

のResponse.Write(のmyString)

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> 
関連する問題