Javascript 常用例子
页面动作
页面滚动
允许粘贴
有的网页不允许粘贴,尤其是密码框,强迫用户一个个字符输入,非常讨厌。 下面的Chrome插件,可以解决这个问题。
var allowPaste = function (e) { e.stopImmediatePropagation(); return true; } documetn.addeventListener('paste', allowPaste, true)
禁止页面滚动
页面滚动失效:
$("body").css("overflow-y","hidden");
恢复页面滚动:
$("body").css("overflow-y","auto");
页面滚动到顶部
/** * 回到页面顶部 * @param acceleration 加速度 * @param time 时间间隔 (毫秒) **/ function goTop(acceleration, time) { acceleration = acceleration || 0.1; time = time || 16; var x1 = 0; var y1 = 0; var x2 = 0; var y2 = 0; var x3 = 0; var y3 = 0; if (document.documentElement) { x1 = document.documentElement.scrollLeft || 0; y1 = document.documentElement.scrollTop || 0; } if (document.body) { x2 = document.body.scrollLeft || 0; y2 = document.body.scrollTop || 0; } var x3 = window.scrollX || 0; var y3 = window.scrollY || 0; // 滚动条到页面顶部的水平距离 var x = Math.max(x1, Math.max(x2, x3)); // 滚动条到页面顶部的垂直距离 var y = Math.max(y1, Math.max(y2, y3)); // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小 var speed = 1 + acceleration; window.scrollTo(Math.floor(x / speed), Math.floor(y / speed)); // 如果距离不为零, 继续调用迭代本函数 if(x > 0 || y > 0) { var invokeFunction = "goTop(" + acceleration + ", " + time + ")"; window.setTimeout(invokeFunction, time); } };
提交与跳转
远程访问
前端开发时模拟远程访问
前端开发时,用setTimeout
模拟是在访问远程的API:
$.getJSON('/mock-data/get_post_list.json', function(data) { setTimeout(function() { console.log(data); }, 1000) });
页面跳转
地址的跳转
url = url + "&sendTime=" + (new Date()).getSeconds(); url = encodeURI(url); if( true == $('#toNewWindow').val() ) { window.open(url); } else { window.location = url; // document.location = url; //这样用了N年了 }
jQuery修改表单提交目标
$("#myForm").attr('action', url);
jQuery请求提交
序列化表单并提交
var formData = $("#myForm").serialize();
可能给已经序列化的表单加上新的内容
formData = formData + "&id=001&name=Jade";
也可以手动建立内容
formData = {'id':'001' , 'name':'Jade'};
提交请求
$.post(url, formData, function(data, textStatus) { if('success' == textStatus ) { // 得到服务器成功响应 // testStatus 为响应内容 } else { // 提交失败 } } );
服务器端Java响应
response.setContentType("text/plain"); response.setCharacterEncoding("UTF-8"); response.getWriter().write(responseStr);
form中只要有任意<button>
或者<input type="submit" />
的按钮都会导致回车提交
上传的按钮改成这样
<input type="button" onclick="return ajaxFileUpload();" value="Upload" />
`
就不会触发自动提交了。
替换onClick事件:
$(obj).unbind('click').removeAttr('onclick'); $(obj).bind("click",function(){ like_old(itemId,obj); });