问题一:Flex和javascript是什么关系?
问题二:用javascript操作HTML之后(比如说删除一个select,input或者加一个,select,input)
页面的SELECT删除之后,查看网页源代码还看到的HTML代码还在?这为什么
问题三:JAVAEYE这个问答版面,上传图片是怎么实现的
[b]问题补充:[/b]
第二个问题:
[color=red]但是,HTML代码是不会变的。[/color]
[color=blue]这个应该是看不到了,可以贴出你的具体代码看看。[/color]到底是看的到还是看不到啊?我是看不到啊????
还有onchange="upload(this.value);" 这样就直接上传了,要是我选错图片了怎么办?
[b]问题补充:[/b]
[code="java"]upload(this.value);[/code]
你这个是怎么把request传过去的
org.apache.commons.fileupload要用到request得到地址
或者用其它方法?
1.没有关系,javascript是W3C的标准,flex是Adobe公司出品的一个富Internet应用解决方案,flex基于flash技术。
2.HTML被浏览器解析为一个XML DOM树,这个树保存在内存中,javascript通过DOM编程可以对它进行操作,最终可以反应到页面的显式。但是,HTML代码是不会变的。你可以用firefox的DOM查看器观察DOM节点的变化。
3.使用HTTP的multipart/form-data可以通过HTTP协议将文件上传到服务器,至于到了服务器端如何再保存为文件,不同的技术有不同的实现方式。java中比较常见的解决方案是apache的commons-fileupload这个子项目。
javaeye的页面上是这样的:
[code="html"]
[/code]
[color=red]问题一:Flex和javascript是什么关系? [/color]
Flex为了程序员进行flash开发而准备的,可以将xml文件编译成flash。
flash 与 js的关系就是flash可以和js进行交互,flash采用的是actionscript脚本和js一样都是基于EcmaScript标准的只是语法有差异
[color=red]问题二:用javascript操作HTML之后(比如说删除一个select,input或者加一个,select,input) 页面的SELECT删除之后,查看网页源代码还看到的HTML代码还在?这为什么 [/color]
这个应该是看不到了,可以贴出你的具体代码看看。
[color=red]问题三:JAVAEYE这个问答版面,上传图片是怎么实现的 [/color]
这个可以先将你要传的图片在你的博客相册里面上传,然后在问答频道引用地址就可以了。
对于你的问题,火星和我可能理解的不一样。例如用jquery删除所有select节点下的Option:
$('select').empty();
删除之后,所有的SELECT节点下都没有东西了,但是你“查看源代码”,还是可以看到xxx的。
[quote]还有onchange="upload(this.value);" 这样就直接上传了,要是我选错图片了怎么办? [/quote]
选错了就错了呗,有什么关系,如果它提供了删除,你就删除然后重新上传不就OK了?如果没有删除,那就只能怪你不小心了。
用firebug看看文档结构,看看删除的时候SELECT节点还在不在。
图片选错了再换一个,删除错的那个。
onchange="upload(this.value);"
只有这一行代码,怎么知道它如何传?upload肯定是一个javaeye自定义的javascript函数,你就不要研究javaeye是如何处理的了。只是文件上传,可以这样:
[code="html"]
[/code]
org.apache.commons.fileupload和客户端的代码没有关系。
HTTP一次将文件上传到服务器,然后就可以用fileupload处理了,仅此而已。
我再给你javaeye的文件上传的HTML代码:
[code="html"]
</form>
<script type="text/javascript">
if(document.location.host != "www.iteye.com") document.domain = "iteye.com";
function upload(fileName) {
if (!$A(['jpg','bmp','png','gif','rar','zip', 'tar', 'gz', 'jar', 'war', 'bz2']).any(function(extName){return new RegExp('\\.'+extName+'$','i').test(fileName);})){
alert("如果您上传图片,请上传png, jpg, gif或者bmp格式的图片\n如果您上传附件,请先压缩再上传");
return false;
}
var counter = parseInt(window.parent.$('attachments_counter').value) + 1;
window.parent.$('attachments_counter').value = counter;
window.parent.$('submit_button').value = counter + " 个文件正在上传中,请等待完成后再提交";
$('spinner').show();
var iframes = window.parent.$("attachment_iframes");
iframes.appendChild(iframes.getElementsByTagName('iframe')[0].cloneNode(false));
$('attachment_form').submit();
}
</script>
[/code]
可以看出,之所以传递this.value,只是为了验证文件是否符合要求,至于上传,和普通的没有任何区别。