做上传图片功能的时候,经常会遇到这样一个问题,有时候可能需要一次上传多张图片,而用html中默认的上控件,却只能选定一个文件,且不能对文件的后缀进行筛选。需要一次上传多个文件的需求,往往可以通过添加多个上传控件来予以满足,比如百度空间的相册上传功能就是这样来实现的。不过,要实现对上传文件后缀的过滤,却始终无法通过常规的方法予以实现。
这两个功能真的这么难以实现吗?非也,看看flickr的上传功能即可获得明确的答复。
为什么能实现这样的功能呢?google了一下,谜底就揭晓了。原来,这是利用了flash的若干功能,通过javascript和actionscript的交互得以实现的。js和as的通 ...
先看Flash帮助的对于addCallback相关说明:
public static addCallback(methodName:String, instance:Object, method:Function) : Boolean
methodName:String - 从 JavaScript 调用 ActionScript 函数时可使用的名称。此名称不必与 ActionScript 方法的实际名称匹配。
instance:Object - this 在该方法中被解析成的对象。此对象不一定是在其上可找到该方法的对象,您可以指定任何对象(或 null)。
method:Function ...
原文地址: www.macromedia.com/support/flash/ts/documents/java_script_comm.htm
说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威
下面是一些在Flash和使用Javascript的HTML文件直接通信的示例,每个示例都有简略的步骤
本文讨论了3种基本的Flash/Javascript通信方式:
Javascript 到 Flash的通信----使用Flash播放器的javascript方法
Flash 到 Javascript的通信----使用Flash的fscommand
Flash 到 Fla ...
播放动画:Play()
例:(网页中的 Flash id).Play();
停止动画:StopPlay()
动画是否正在播放:IsPlaying()
跳转到某帧:GotoFrame(frame_number)
获取动画总帧数:TotalFrames()
回传当前动画所在帧数:CurrentFrame()
使动画返回第一帧:Rewind()
放大指定区域:SetZoomRect(left,top,right,buttom)
改变动画大小:Zoom(percent)
使动画在 x,y 方向上平移:Pan(x_position,y_position,unit)
返回动画被载入的百分比:Perce ...
今天终于静下心来研究程序的效率问题,竟然发现一个普通的循环拼接字符串在IE下竟然执行了3秒钟时间
搜索发现早就有人对此进行了研究,于是又学到了一招,就是利用数组的join方法
以后得注意着这个问题,当需要拼接的字符串比较多的时候使用如下方法:
function StringBuffer(){
this._strings = new Array();
}
StringBuffer.prototype.append = function(str){
this._strings.push(str);
};
StringBuffer.prototype. ...
前几周做一个web企业项目,用户一定要求要有批量上传功能,而且指明了要和他们的老系统上传文件功能一样(老系统是c/s结构,vb做的)。然后没办法,想来想去只有flash能做到,于是上网找有没有这方面的东西,就找到了这个东东——SWFUpload.
官网地址是:http://swfupload.mammon.se/
由于在官网的里例子示范里面只有php,C#,VB.net和ROR的,然后我上javaeye搜了下,好象也不多,只有一篇,而且也是比较高级的,于是只能自己搞了。
完了之后觉得这个东西的确相当不错,使用感觉很好,我估计我以后做项目可能都要用这玩意了。
代码我自己做了个wa ...
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent
1、 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURI ...
1、关于javascript的apply和call函数
prototype.js中用了大量的apply和call函数,不注意会造成理解偏差。
官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。
apply与call的区别是第二个参数不同。apply是 数组或者arguments 对象。而call是逗号隔开的任何类型。
apply,call方法最让人混淆的地方也是apply,call的特色。但最好不要滥用。
能改变调用函数的对象。如下例,函数中用到this关键字,这时候this代表的是apply,call函数的第一个参数。
<script src="prototype1. ...
JavaScript中有一个call和apply方法,其作用基本相同,但也有略微的区别。
先来看看JS手册中对call的解释:
call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thi ...
为什么我还没有点击链接 zhuanyi函数就运行了。。。
<script language="JavaScript">
window.onload = rolloverInit;
function rolloverInit()
{
for(var i=1; i<document.links.length; i++)
{ var lianjie = document.links[i];
lianjie.onclick = zhuanyi(lianjie);
}}
function zhuanyi(thislianjie){
alert("neir ...
在一个结构良好的网页中,不仅要做到结构和表现的分离,而且应该做到结构和逻辑的分离。这里的逻辑通常就是指在页面中使用的js脚本,比如:
function toggleDl(){
//statement
}
var dl=document.getElementById("commentsList");
dl.onclick=toggleDl;
这就是一个结构分离的例子,它没有把onclick直接插入到html代码当中,而是通过dom模型取到这个结点然后加入语句来实现触发点击事件的功能。在这段代码中,onclick是一个事件句柄,它的值应该是一个函数体,当点击时会运行这个函数体。所以上面的语句 ...
javascript语言提供两个内置函数将表示数值的字符串转换为真实的数值:parseInt()和parseFloat()。
为了使用这些函数,需要将进行转换的字符串作为参数传入函数,例:
parseInt("42") //result=42
parseInt("42.33") //result=42
不过是浮点数还是整数,函数返回的值都是整数。不存在四舍五入,小数点和它后面的数字将被舍弃。
而parseFloat()则返回浮点数(如果是整数就返回整数),例:
parseFloat("42") //result=42
parseFloat("42.33") //result=4 ...
突然在项目里要用到javascrip二维数组,一查,发现,javascrip没有二维数组.那咱办呢,没有就没有,只好通过其它办法来做相似的功能.
第一种办法就是用一维数组来模拟二维数组.感觉这样不是很好,有点麻烦,而且容易出错
第二种办法:将一维数组的分项又定义为一个一维数组. 这种办法看起来似乎不错,主要实现方法如下:
javascript定义二维数组的方法
javascript本身只支持一维数组,
有时非要用到二维数组的时候,
可以将一维数组的分项又定义为一个数组,
二维数组就是用数组构成的数组
Var aa=new Array(); //定义一维数组
for(i=1;i ...
<table border=1 cellspacing=0><tr valign=top>
<td>
<img id=big_img width=640 height=480
onload='if (this.width>640 || this.height>480) if (this.width/this.height>640/480)
this.width=640; else this.height=480;'>
<td>
<img src=一天一天抱大了.JPG
onclick='big_img.src=this.s ...
文件上传之前的检测,通常是通过文件名来判断文件类型是否合法,但是要想检测文件的大小很难办到,除非在本地或者使用控件。不过在IE下img有几个附加的属性,如:fileCreatedDate、fileModifiedDate、fileSize、fileUpdatedDate、filters,我们可以通过这些属性来获取图片文件的部分信息,如文件大小,我们用file表单同img标签结合,就能够在上传之前判断图片文件的大小是否合法了。
还有一个小小的发现就是,IE下动画的onload事件是在每次循环开始都触发,这样我们可以通过他来达到和js里setInterval()函数一样的效果,如:
这两个 ...
var objArray=new Array();
objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响。如:var arr=["a","b","c"];
arr.concact("d","e");
将返回包括从"a"到"e"字母元素的数组。而arr本身不受影响。
objArray.join(separator)-----------------以separator指定的字符作为分割符,将数组转换为字符串,当seperator 为逗号时,其作用和to ...
<input name=mlizhong size=4 value='' maxlength=4
onkeypress="return event.keyCode>=48&&event.keyCode<=57"
onpaste="var s=clipboardData.getData('text'); if(!/\D/.test(s)) value=s.replace(/^0*/,''); return false;" ondragenter="return false"
style="ime-mode:disabled" onkeyup="if(/(^0 ...
getElementByID getElementsByName getElementsByTagName的区别和总结
WEB标准下可以通过getElementById(), getElementsByName(), and getElementsByTagName()访问DOCUMENT中的任一个标签:
1、getElementById()
getElementById()可以访问DOCUMENT中的某一特定元素,顾名思义,就是通过ID来取得元素,所以只能访问设置了ID的元素。
比如说有一个DIV的ID为docid:
<div id="docid"></div>
那么就可以 ...
function selectAll(){
var selectall=document.getElementById("selectall");
var checkboxid=document.getElementsByName("checkboxid");
if(selectall.checked==true){
for(var i=0;i<checkboxid.length;i++){
checkbo ...
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
//==============================
var agent=navigator.userAgent;
var reg=/msie([^;]+);/i//获取版本的正则
var match=agent.match(reg);
if(parseFloat([1])<=6)
alert("IE6");
else
a ...
html
<div nowrap id="filespan">
<input type="button" onclick="addFile()" value="添加附件" id="btnAdd" />
<div id="divMsg">尚未添加文件</div>
</div>
js
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
var fileIndex = 0;
var dic = new ActiveXObject("Script ...
说明:个人理解Scripting.Dictionary创建的对象,它的集合中每一项包含两个属性一个是键值,一个是值,即(key,value),其中value可以是任何类型的对象或数值。
<script language = javascript>
function ok(){
try{
var obj = new ActiveXObject("Scripting.Dictionary");//创建对象
obj.Add("hello",null);//增加新项
obj.Item("hello")="Chiweiyao";//给新增添的项赋值
...
本文介绍如下几个方面的内容:
1.如何创建数组
2.如何对数组进行操作(添加,删除,读取)
3.数组常见方法和属性
如何创建一个数组,一般地根据初始化设定简单分为3种:
1.单纯创建数组:
var arr=new Array();
要点:用new关键字创建数组对象Array(),Array()对象是一个本地类,可以用new创建一个对象后使用
2.创建数组的同时规定数组大小:
var arr=new Array(10);//这里就创建了一个初始化大小为10的数组
注意:当使用数组大小操作初始化大小时,数组会自动被撑大,不会像C语言那样发生错误.动态增长是js数组的一个性质.另外,js中支持 ...
<script language="javascript" for="document" event="onkeydown">
<!--
if(event.keyCode==13)
event.keyCode=9;
-->
</script>
这样的处理方式,可以实现焦点往下移动,但对于按钮也起同样的作用,一般的客户在输入完资料以后,跳到按钮后,最好能直接按"回车"进行数据的提交.因此,对上面的方法要进行一下修改,应该对于"提交"按钮不进行焦点转移.而直接激活提交.
因此我对上面的代码进行了一个修改,即判断事件的"源",是否为提交按 ...
方式一:事先写好多个input.在点击时才显示。也就是说上传的最大个数是写死了的。
html
<p>
<a href='#' onclick='javascript:viewnone(more1)'> 添加附件 </a>
<div id='more1' style='display:none'>
<input type="file" name="attach1" size="50"javascript:viewnone(more2)>
</span>
</div>
<div id='more2' style='dis ...
var a = document.createElement("select")
for(var i =0;i<10;i++){
var op = document.createElement("option")
op.text="afasdfsd"
a.options.add(op)
}
增加:
<html>
<script>
function dy(){
var row=document.createElement("tr");
var cell=document.createElement("td");
cell.appendChild(document.createTextNode("afsafaf"));
row.appendChild(cell);
document.getElementById("newbody").appendChild(row);
}
</script>
<body>
<br>
...
今天加了一个时间,网上找了一些参考,觉得这个不错
时间验证
<html>
<script>
function int(){
alert();
}
function IsDate(str){
//var str = document.getElementById('str').value.trim();
if(str.length!=0){
var reg = /^\d{4}-\d{2}-\d{2}$/;
var r = str.match(reg);
alert(r)
...
//判断输入内容是否为空
function IsNull(){
var str = document.getElementById('str').value.trim();
if(str.length==0){
alert('对不起,文本框不能为空或者为空格!');//请将“文本框”改成你需要验证的属性名称!
}
}
//判断日期类型是否为YYYY-MM-DD格式的类型
function IsDate(){
var str = document. ...
一些实用的函数
这个类库带有很多预定义的对象和实用函数,这些东东的目的显然是把你从一些重复的打字中解放出来 。
使用$()方法
$() 方法是在DOM中使用过于频繁的 document.getElementById() 方法的一个便利的简写,就像这个DOM方法一样,这个方法返回参数传入的id的那个元素。
比起DOM中的方法,这个更胜一筹。你可以传入多个id作为参数然后 $() 返回一个带有所有要求的元素的一个 Array 对象。
<HTML>
<HEAD>
<TITLE> Test Page </TITLE>
<script src="prototype- ...







评论排行榜