2

この質問は新しい質問をもたらしました:

HTMLページがあり、ユーザーが「保存」ボタンを押したときにコンテンツタイプを変更して、ブラウザがファイルをディスクに保存するように求めるプロンプトを表示する必要があります。

私はこれをサーバー側で行って、ページの「Excel」バージョン(基本的にはhtmlテーブル)を提供しています。

    <c:if test="${page.asExcelAction}">
    <% 
        response.setContentType("application/vnd.ms-excel");
    %>

私が今やろうとしていることは同じことをすることですが、クライアント側ではjavacriptを使用していますが、それを行うことができません。

これは私がこれまでに得たものです:

<html>
    <head>
        <script>
            function saveAs(){
                var sMarkup =  document.getElementById('content').innerHTML; 
                //var oNewDoc = document.open('application/vnd.ms-excel');        
                var oNewDoc = document.open('text/html');        
                oNewDoc.write( sMarkup );
                oNewDoc.close();
            }
        </script>
    </head>
<body>
<div id='content'>
    <table>
        <tr>
            <td>Stack</td>
            <td>Overflow</td>
        </tr>
    </table>
</div>    
<input type="button" value="Save as" onClick="saveAs()"/>
</body>
</html>
4

2 に答える 2

0

非表示のiframeを使用してみてください。ユーザーが[保存]をクリックしたら、Excelファイルを保存/生成している場所にiframesrcを更新します。保存ダイアログが表示されます。

于 2009-09-25T20:34:06.217 に答える
0

投稿したリンクで述べたように、現在 (少なくとも IE で) サポートされている MIME タイプはプレーン テキストと HTML のみです。別の MIME タイプを使用するには、サーバー側の呼び出しを行う必要があります。ActiveX コントロールを使用できる場合もありますが、クロス ブラウザーとの互換性はありません。

于 2010-04-08T16:24:14.963 に答える