我创建了两个按钮,允许用户将HTML表下载为TXT或Excel。合适的文件由我的Rails应用程序生成。除了IE,一切都很好。我在Win7上测试了IE11。
实时示例(请参见底部的按钮):http://en.mycoursewalk.com/course_walk/distance_table/3575
HTML代码:
<a href="#" id="Export_Excel" title="Export to Excel" class="ui-btn ui-shadow ui-corner-all"><i class="fa fa-file-excel-o fa-lg"></i> Export to Excel</a>
<script>
var cw_id = <%= @coursewalk.id %>;
$(document).on("pageshow",function(event) {
$("#Export_Excel").click(function(event) {
export_table('xml');
});
});
function export_table(export_format) {
var table = $('#distance_table').tableToJSON();
window.open('/application/export_table/' + cw_id + '.' + export_format + '?table_type=distance_table&export_format=' + export_format + "&_json=" + encodeURIComponent(JSON.stringify(table)), "_self");
}
</script>
控制器:
def export_table
# Code here to create appropriate text or Excel file. Removed for clarity
formatted_data = ''
formatted_data << "test" + "t" + "test2" + "n"
i = Iconv.new('UTF-8','iso-8859-1')
formatted_data_utf8 = i.iconv(formatted_data)
send_data formatted_data_utf8, :filename => "test.txt", :type => "text/csv;charset=UTF-8", :disposition => "attachment"
end
在IE开发者工具和控制台中,当您单击导出按钮时,IE会显示"Navigation Occurred"(发生导航)和关于DOCTYPE的投诉。点击DOCTYPE警告将实际将TXT或Excel文件加载到控制台中。
我该怎么解决这个问题?
我通过使用rails模板解决了这个问题,而不是像Rail Cast:中所描述的那样
http://railscasts.com/episodes/362-exporting-csv-and-excel?view=asciicast