htmlform文件下载 html input
很多朋友对于htmlform文件下载和html input不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
JqueryAjax请求文件下载操作失败怎么处理
这次给大家带来Jquery Ajax请求文件下载操作失败怎么处理,处理Jquery Ajax请求文件下载操作失败的注意事项有哪些,下面就是实战案例,一起来看一下。
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯,本文重点给大家介绍Jquery Ajax请求文件下载操作失败的原因分析及解决办法,对ajax请求失败的原因分析感兴趣的朋友一起学习把
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。
废话少说,直接进入正题,我们先来分析一下失败的原因
一、失败的原因
那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
二、解决方案
1)可以使用jquery创建表单并提交实现文件下载;
var form=$("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action",rootPath+"T_academic_essay/DownloadZipFile.do");
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","strZipPath");
input1.attr("value",strZipPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();2)可以直接使用a标签实现文件下载;
<a href=”下载地址”>点击下载</a>
3)使用隐藏iframe或新窗体解决。
PS:AJAX请求$.ajax方法的使用
使用jQuery的$.ajax方法可以更为详细的控制AJAX请求。它在AJAX请求上施加细粒度级别的控制。
$.ajax方法语法
$.ajax(options)
参数
options
(对象)一个对象的实例,其属性定义这个操作的参数。详情见下表。
返回值
XHR实例
options详细范围值
名称
类型
描述
url
字符串
请求的url地址
type
字符串
将要使用的HTTP方法。通常是POST或GET。如果省略,则默认为GET
data
对象
一个对象,其属性作为查询参数而传递请求。如果是GET请求,则把数据作为查询字符串传递;如果是POST请求,则把数据作为请求体传递。在这两种情况下,都是由$.ajax()实用工具函数来处理值的编码
dataType
字符串
一个关键字,用来标识预期将被响应所返回的数据的类型。这个值决定再把数据传递给回调函数之前(如果有)进行什么后续处理。有效值如下:
xml-响应文本被解析为XML文档,而作为结果的XML DOM被传递给回调函数
html-响应文本未经处理就被传递给回调函数。在已返回HTML片段内的任何<script>块将被求值
json-响应文本被求值为JSON字符串,而作为结果的对象被传递给回调函数
jsonp-与json相似,不同之处是提供远程脚本支持(假定远程服务器支持)
script-响应文本被传递给回调函数。在任何回调函数被调用之前,响应被作为一个或多个JavaScript语句而进行处理
text-响应文本被假定为普通文本。服务器资源负责设置适当的内容类型响应标头。如果省略这个属性,则不对响应文本进行任何处理或求值就传递给回调函数
timeout
数值
设置Ajax请求的超时值(毫秒)。如果请求在超时值到期之前仍未完成,则中止请求并且调用错误回调函数(如果已定义)
global
布尔型
启用或禁用全局函数的触发。这些函数可以附加到元素上,并且在Ajax调用的不同时刻或状态下触发。默认启用全局函数触发
contentType
字符串
将要在请求上指定的内容类型。默认为application/x-www-form-urlencoded(与表单提交所使用的默认类型相同)
success
函数
如果请求的响应指示成功状态码,则这个函数被调用。响应体作为第一个参数被返回给这个函数,并且根据指定的dataType属性进行。第二个参数是包含状态码的字符串—这种情况下永远为成功状态码
error
函数
如果请求的响应返回错误状态码,则这个函数被调用。三个实参被传递给这个函数:XHR实例、状态消息字符串(在这种情况下永远为错误状态码)以及XHR实例所返回的异常对象(可选)
complete
函数
请求完成时被调用。两个实参被传递:XHR实例和状态消息字符串(成功状态码或错误状态码)。如果也指定了success或error回调函数,则这个函数在success或error回调函数调用之后被调用
beforeSend
函数
在发起请求之前被调用。这个函数被传递XHR实例,并且可以用来设置自定义的标头或执行其他预请求操作
async
布尔型
如果指定为false,则请求被提交为同步请求。在默认的情况下,请求是异步的
processData
布尔型
如果设置为false,则阻止已传递数据被加工为URL编码格式。默认情况下,数据被加工为URL编码格式(适用于类型为application/x-www-form-urlencoded的请求)
ifModified
布尔型
如果设置为true,则自从上一次请求以来,只有在响应内容没有改变的情况下(根据Last-Modified标头)才允许请求成功。如果省略,则不执行标头检查
下面看个例子,尽可能多的用到options中的选项
客户端代码:
<html xmlns="">
<head>
<title></title>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function(){
$('#selectNum').change(function(){
var idValue=$(this).val();
var show=$('#show');
$.ajax({
url:'Server.aspx',
type:'POST',
data:{ id: idValue},
//调小超时时间会引起异常
timeout: 3000,
//请求成功后触发
success: function(data){ show.append('success invoke!'+ data+'<br/>');},
//请求失败遇到异常触发
error: function(xhr, errorInfo, ex){ show.append('error invoke!errorInfo:'+ errorInfo+'<br/>');},
//完成请求后触发。即在success或error触发后触发
complete: function(xhr, status){ show.append('complete invoke! status:'+ status+'<br/>');},
//发送请求前触发
beforeSend: function(xhr){
//可以设置自定义标头
xhr.setRequestHeader('Content-Type','application/xml;charset=utf-8');
show.append('beforeSend invoke!'+'<br/>');
},
//是否使用异步发送
async: true
})
});
})
</script>
</head>
<body>
<select id="selectNum">
<option value="0">--Select--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<p id="show"></p>
</body>
</html>服务端主要代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
if(Request["id"]!= null&&!string.IsNullOrEmpty(Request["id"].ToString()))
{
//启用该句会引发ajax超时异常
// System.Threading.Thread.Sleep(3000);
Response.Write(GetData(Request["id"].ToString()));
}
}
}
protected string GetData(string id)
{
string str= string.Empty;
switch(id)
{
case"1":
str+="This is Number 1";
break;
case"2":
str+="This is Number 2";
break;
case"3":
str+="This is Number 3";
break;
default:
str+="Warning Other Number!";
break;
}
return str;
}运行程序,结果如图:
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
jquery插件uploadify使用详解
jquery基础知识点使用详解
html5的新元素
自1999年以后HTML 4.01已经改变了很多,今天,在HTML 4.01中的几个已经被废弃,这些元素在HTML5中已经被删除或重新定义。
为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如:图形的绘制,多媒体内容,更好的页面结构,更好的形式处理,和几个api拖放元素,定位,包括网页应用程序缓存,存储,网络工作者,等。<video>标记
定义和用法:
</video>标签定义视频,比如电影片段或其他视频流。
<audio>标记
定义和用法
</audio>标签定义声音,比如音乐或其他音频流。
实例:
一段简单的HTML5音频
<audio src=>
您的浏览器不支持 audio标签。
</audio>
<canvas>标记
定义和用法:
<canvas>标签定义图形,比如图表和其他图像。
HTML5的 canvas元素使用JavaScript在网页上绘制图像。
画布是一个矩形区域,您可以控制其每一像素。
canvas拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
实例:
通过 canvas元素来显示一个红色的矩形:
<canvas id=myCanvas></canvas>
<script type=text/javascript>
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>除了原先的DOM接口,HTML5增加了更多API,如:
1.用于即时2D绘图的Canvas标签
2.定时媒体回放
3.离线数据库存储
4.文档编辑
5.拖拽控制
6.浏览历史管理新的解析顺序新的元素:section, video, progress, nav, meter, time, aside, canvasinput
元素的新属性:日期和时间,email, url。
新的通用属性:ping, charset, async
全域属性:id, tabindex, repeat。
移除元素:center, font, strike。就是Html标注的属性里加上runat=server所构成的控件,至于Html标注和Html控件之间的区别很明显,Html控件是运行于服务器端,Html标注是运行于客户端。
基本Html控件有:HtmlTexArea\HtmlTable\HtmlImage\HtmlButton\HtmlSelect\HtmlForm\HtmlInput。
自定义的Html控件是根据自己的需求定义。当自主开发效率低,可以从技术社区、源码网站下载需要的控件。比如,需要插入table, image, links等标签。不必自己开发,可以使用:ComponentOne Wijmo Editor等。
免费HTML5图表库——.Net图表控件Chart FX,深受大家喜爱,相信大家已经非常熟悉了。而且还从Chart FX的开发商SoftwareFX获得一个激动人心的消息:该公司已推出一套为HTML5,jQuery和JavaScript开发者设计的图表库——jChartFX,而且jChartFX是免费的!.Net图表控件Chart FX相信大家已经非常熟悉了。Chart FX的开发商SoftwareFX推出的一套为HTML5、jQuery和JavaScript开发者设计的免费HTML5图表库——jChartFX!
jChartFX亮点: jChartFX充分利用了HTML5,CSS和SVG,让您能够在浏览器提供美观优越的图表和更丰富的最终用户体验。 jChartFX拥有很多令人振奋的功能,它在无插件纯JavaScript的浏览器上运行,这意味着在提高了网站安全性和速度的同时,最大程度的减少了网站服务器的负荷。 jChartFX还能够自动整合到jQuery UI ThemeRoller,自动读取并解释jQuery的主题和CSS文件,能够快速适应您的页面布局和设计,无需一行代码。 jChartFX支持JSON,JSON能够帮助您实现,任何数据源中的数据都可以展现到图表中。 jChartFX还支持超过40种的2D、3D图表类型,免费的图表控件中支持如此之多的图表展示类型实属难得。注:在下面表格中4:指在HTML 4.01中定义了该元素 5:指在HTML 5中定义了该元素按字母顺序排列的标签列表标签描述<!--...-->定义注释 4 5<!DOCTYPE>定义文档类型 4 5<a>定义超链接 4 5<abbr>定义缩写 4 5<acronym> HTML 5中不支持 4<address>定义地址元素 4 5<applet>定义 applet(HTML 5中不支持) 4<area>定义图像映射中的区域 4 5<article>定义 article 5<aside>定义页面内容之外的内容 5<audio>定义声音内容 5<b>定义粗体文本 4 5<base>定义页面中所有链接的基准URL 4 5<basefont> HTML 5中不支持,请使用CSS代替 4<bdo>定义文本显示的方向 4 5<big>定义大号文本(HTML 5中不支持) 4<blockquote>定义长的引用 4 5<body>定义 body元素 4 5<br>插入换行符 4 5<button>定义按钮 4 5<canvas>定义图形 5<caption>定义表格标题 4 5<center>定义居中的文本(HTML 5中不支持) 4<cite>定义引用 4 5<code>定义计算机代码文本 4 5<col>定义表格列的属性 4 5<colgroup>定义表格列的分组 4 5<command>定义命令按钮 5<datalist>定义下拉列表 5<dd>定义定义的描述 4 5<del>定义删除文本 4 5<details>定义元素的细节 5<dfn>定义定义项目 4 5<dir>定义目录列表(HTML 5中不支持) 4<div>定义文档中的一个部分 4 5<dl>定义定义列表 4 5<dt>定义定义的项目 4 5<em>定义强调文本 4 5<embed>定义外部交互内容或插件 5<fieldset>定义 fieldset 4 5<figcaption>定义 figure元素的标题 5<figure>定义媒介内容的分组,以及它们的标题 5<font> HTML 5中不支持 4<footer>定义 section或 page的页脚 5<form>定义表单 4 5<frame>定义子窗口(框架)(HTML 5中不支持) 4<frameset>定义框架的集(HTML 5中不支持) 4<h1> to<h6>定义标题1到标题6 4 5<head>定义关于文档的信息 4 5<header>定义 section或 page的页眉 5<hgroup>定义有关文档中的 section的信息 4 5<html>定义 html文档 4 5<i>定义斜体文本 4 5<iframe>定义行内的子窗口(框架) 4 5<img>定义图像 4 5<input>定义输入域 4 5<ins>定义插入文本 4 5<keygen>定义生成密钥 5<isindex>定义单行的输入域(HTML 5中不支持) 4<kbd>定义键盘文本 4 5<label>定义表单控件的标注 4 5<legend>定义 fieldset中的标题 4 5<li>定义列表的项目 4 5<link>定义资源引用 4 5<map>定义图像映射 4 5<mark>定义有记号的文本 4 5<menu>定义菜单列表 4 5<meta>定义元信息 4 5<meter>定义预定义范围内的度量 5<nav>定义导航链接 5<noframes>定义 noframe部分(HTML 5中不支持) 4<noscript>定义 noscript部分 4 5<object>定义嵌入对象 4 5<ol>定义有序列表 4 5<optgroup>定义选项组 4 5<option>定义下拉列表中的选项 4 5<output>定义输出的一些类型 5<p>定义段落 4 5<param>为对象定义参数 4 5<pre>定义预格式化文本 4 5<progress>定义任何类型的任务的进度 5<q>定义短的引用 4 5<rp>定义若浏览器不支持 ruby元素显示的内容 5<rt>定义 ruby注释的解释 5<ruby>定义 ruby注释 5<s>定义加删除线的文本(HTML 5中不支持) 4<samp>定义样本计算机代码 4 5<script>定义脚本 4 5<section>定义 section 4 5<select>定义可选列表 4 5<small>定义小号文本 4 5<source>定义媒介源 4 5<span>定义文档中的 section 4 5<strike>定义加删除线的文本(HTML 5中不支持) 4<strong>定义强调文本 4 5<style>定义样式定义 4 5<sub>定义下标文本 4 5<summary>定义 details元素的标题 5<sup>定义上标文本 4 5按字母顺序排列的标签列表标签描述 4:指在HTML 4.01中定义了该元素
5:指在HTML 5中定义了该元素<table>定义表格 4 5<tbody>定义表格的主体 4 5<td>定义表格单元 4 5<textarea>定义 textarea 4 5<tfoot>定义表格的脚注 4 5<th>定义表头 4 5<thead>定义表头 4 5<time>定义日期/时间 5<title>定义文档的标题 4 5<tr>定义表格行 4 5<tt>定义打字机文本 4 5<u>定义下划线文本(HTML 5中不支持) 4<ul>定义无序列表 4 5<var>定义变量 4 5<video>定义视频 5<xmp>定义预格式文本(HTML 5中不支持) 4 HTML 5元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个HTML 5元素时启动一段 JavaScript。下面列出的事件属性,可以把它们插入 HTML标签来定义事件行为。
HTML 5中的新事件属性:onabort, onbeforeunload, oncontextmenu, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onmessage, onmousewheel, onresize, onscroll, onunload。
4:指在HTML 4.01中定义了该元素。
5:指在HTML 5中定义了该元素。
HTML 5不再支持的 HTML 4.01属性:onreset。事件属性属性值描述 4 5 onabort script发生 abort事件时运行脚本。 5 onbeforeonload script在元素加载前运行脚本。 5 onblur script当元素失去焦点时运行脚本。 4 5 onchange script当元素改变时运行脚本。 4 5 onclick script在鼠标点击时运行脚本。 4 5 oncontextmenu script当菜单被触发时运行脚本。 5 ondblclick script当鼠标双击时运行脚本。 4 5 ondrag script只要脚本在被拖动就运行脚本。 5 ondragend script在拖动操作结束时运行脚本。 5 ondragenter script当元素被拖动到一个合法的放置目标时,执行脚本。 5 ondragleave script当元素离开合法的放置目标时。 5 ondragover script只要元素正在合法的放置目标上拖动时,就执行脚本。 5 ondragstart script在拖动操作开始时执行脚本。 5 ondrop script当元素正在被拖动时执行脚本。 5 onerror script当元素加载的过程中出现错误时执行脚本。 5 onfocus script当元素获得焦点时执行脚本。 4 5 onkeydown script当按钮按下时执行脚本。 4 5 onkeypress script当按键被按下时执行脚本。 4 5 onkeyup script当按钮松开时执行脚本。 4 5 onload script当文档加载时执行脚本。 4 5 onmessage script当 message事件触发时执行脚本。 5 onmousedown script当鼠标按钮按下时执行脚本。 4 5 onmousemove script当鼠标指针移动时执行脚本。 4 5 onmouseover script当鼠标指针移动到一个元素上时执行脚本。 4 5 onmouseout script当鼠标指针移出元素时执行脚本。 4 5 onmouseup script当鼠标按钮松开时执行脚本。 4 5 onmousewheel script当鼠标滚轮滚动时执行脚本。 5 onreset script当表单重置时执行脚本。不支持。 4 onresize script当元素调整大小时运行脚本。 5 onscroll script当元素滚动条被滚动时执行脚本。 5 onselect script当元素被选中时执行脚本。 4 5 onsubmit script当表单提交时运行脚本。 4 5 onunload script当文档卸载时运行脚本。 5 HTML 5标签拥有属性。在每个标签的参考页中可以找到相应的特殊属性。这里列出的属性是通用于每个标签的核心属性和语言属性(有个别例外)。
4:指在HTML 4.01中定义了该元素
5:指在HTML 5中定义了该元素
HTML 5标签中的新属性有:contenteditable, contextmenu, draggable, irrelevant, ref,registrationmark, template
HTML 5中不再支持的属性:accesskey标签属性属性值描述 4 5 acceskey a character设置访问一个元素的键盘快捷键。不支持。 4 class class_ruleorstyle_rule元素的类名。 4 5 contenteditable true
false设置是否允许用户编辑元素。 5 contentextmenu id of a menu element给元素设置一个上下文菜单。 5 dir ltr
rtl设置文本方向。 4 5 draggable true
false
auto设置是否允许用户拖动元素。 5 id id_name元素的唯一 id。 4 5 irrelevant true
false设置元素是否相关。不显示非相关的元素。 5 lang language_code设置语言码。 4 5 ref urlorelementID引用另一个文档或文档上另一个位置。仅在 template属性设置时使用。 5 registrationmark registration mark为元素设置拍照。可规定于任何<rule>元素的后代元素,
除了<nest>元素。 5 style style_definition行内的样式定义。 4 5 tabindex number设置元素的 tab顺序。 4 5 template urlorelementID引用应该应用到该元素的另一个文档或本文档上另一个位置。 5 title tooltip_text显示在工具提示中的文本。 4 5 HTML5可以提供:
1.提高可用性和改进用户的友好体验;
2.有几个新的标签,这将有助开发人员定义重要的内容;
3.可以给站点带来更多的多媒体元素(视频和音频);
4.可以很好的替代FLASH和Silverlight;
5.当涉及到网站的抓取和索引的时候,对于SEO很友好;
6.将被大量应用于移动应用程序和游戏。
谷歌和HTML5
2010年5月22日,谷歌创建了一个涂鸦来纪念Pac Man的视频游戏。这个涂鸦是一个动画,同时也是一个可以玩的Pac Man的游戏。这个涂鸦就是谷歌通过使用HTML5标准制作的,当然谷歌也提供一个FLASH版本来支持不兼容HTML5的浏览器。我敢打赌,这是大多数互联网网民第一次和HTML5的接触。对于个人来说,这是一个兴奋的消息。以我的观点,这个涂鸦提供了一个机会可以窥视未来互联网、网页、移动应用软件和游戏等发展趋势。对于搜索引擎优化,他开辟了我更多的想象,它让我思考HTML5在SEO领域的潜力。网站转移到HTML5标准对于SEO有什么优势?
HTML 5开发领域的领军人物包括Sencha,Adobe,Appcelerator,appMobi及Facebook,亚马逊,Google三大巨头。不管你是想开发出新型视频应用的开发商如Brightcover还是想开发新型音频应用的开发商如Soundcloud,不论是桌面应用还是移动应用,HTML 5都是创新的主旋律。
HTML5与SEO
一:使搜索引擎更加容易抓取和索引
对于一些网站,特别是那些严重依赖于FLASH的网站HTML5是一个大福音。如果你有一个都是FLASH的站点,你就一定会看到切换到HTML5的好处。首先,搜索引擎的蜘蛛将能够抓取你的站点和索引你的内容。所有嵌入到动画中的内容将全部可以被搜索引擎读取。在搜索引擎优化的基本理论中,这一方面将会驱动你的网站获得更多的右击流量。
二:提供更多的功能,提高用户的友好体验
使用HTML5的另一个好处就是它可以增加更多的功能。对于HTML5的功能性问题,我们从全球几个主流站点对它的青睐就可以看出。社交网络大亨Facebook已经推出他们期待已久的基于HTML5的iPad应用平台,潘多拉也推出他们基于HTML5的音乐播放器的新版本。游戏平台 Zynga也在推出了三款新的在移动设备浏览器上运行的基于HTML5的游戏等等。每天都有不断的基于HTML5的网站和HTML5特性的网站被推出。保持站点处于新技术的前沿,也可以很好的提高用户的友好体验。
三:可用性的提高,提高用户的友好体验
最后我们可以从可用性的角度上看,HTML5可以更好的促进用户于网站间的互动情况。多媒体网站可以获得更多的改进,特别是在移动平台上的应用,使用 HTML5可以提供更多高质量的视频和音频流。到目前为止,事实就是iPhone和iPad将不会支持FLASH,同时ADOBE公司也公开声明将停止FLASH基于移动平台的开发,可以这么说——移动平台日后视频音频是HTML5的天下!
html5中button怎么把边框怎么弄成圆角
在HTML中把块的边框做成圆角需要利用css的border-radius属性。
操作步骤:
1、打开Adobe Dreamweaver CC 2015。
2、执行菜单栏中的"文件的新建"命令或按住Ctrl+N键打开"新建文档"对话框,选择其文档类型为HTML,单击"创建"按钮,即创建一个网页文档。
3、在<body>和</body>之间添加"<form></form>",如下图所示。表单使用的<form>标记是成对出现的,在首标记<form>和尾标记</form>之间的部分就是一个表单。
4、在<form>和</form>之间添加"<input name="text" type="submit" value="登录" class="input_box">",如下图所示。
5、在<head>和</head>之间添加"<style type="text/css"></style>",如下图所示。
6、在<style type="text/css">和</style>之间添加".input_box{width:360px; height:40px; border-radius:20px; border-style:none; background:#ec6941;font-size:14px; color:rgba(249,248,248,1.00);}",如下图所示。
7、保存网页文件,按住F12键可以在浏览器中预览效果,如下图所示。
关于htmlform文件下载到此分享完毕,希望能帮助到您。