请教.click()方法在火狐下无效的问题

yufan916 2009-04-13 11:31:19
js中的click()方法在IE中是好的,但是在火狐中就无效了,在网上找了半天,都是这个方法,但是这个方法好像无效啊,求高人解答.
function fileClick(name){
if(document.all){
document.getElementById(name).click();
}
else{
var evt=document.createEvent("MouseEvents");
evt.initEvent("click",true,true);
document.getElementById(name).dispatchEvent(evt);
}
}
...全文
1710 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
孙十一 2012-08-03
  • 打赏
  • 举报
回复
同样的问题,上边的解决方法不都行啊。怎么办
  • 打赏
  • 举报
回复
在火狐3.6.16 发现大家的方法是无效的,对于透明方法,觉得不是很通用
wickiup 2010-10-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sohighthesky 的回复:]

code=JScript]
<script>
function handerToClick(){
var obj=document.getElementById("btn1");
if(document.all){//IE中
obj.fireEvent("onclick");
} else {
var e=document.createEvent('MouseEvent')……
[/Quote]
正确答案啊,怎么没被采用
haojie_java_ms 2010-02-23
  • 打赏
  • 举报
回复
遇到同样问题了。。。谁能解决啊
evt = document.createEvent('HTMLEvents');
evt.initEvent('onclick',true,true);
element = document.getElementById(subMenuBar+"_index");
if(element) {
element.dispatchEvent(evt)
}
ytlines 2010-02-03
  • 打赏
  • 举报
回复
FF下,click无效
zfhstudy 2009-12-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shenzhennba 的回复:]
是 onclick ,不用太懒,就多加两个字符 on 而已,呵呵
[/Quote]

测试通过! 可以兼容 IE6+/FF 3.5/Chrome....
yuantq 2009-07-11
  • 打赏
  • 举报
回复
一样的问题~~不知道怎么解决
pc372 2009-06-09
  • 打赏
  • 举报
回复
顶一下,遇到同样的问题了。
liaojie598 2009-04-17
  • 打赏
  • 举报
回复
我都 试了,都不可以,到底要怎么写呀
tantaiyizu 2009-04-14
  • 打赏
  • 举报
回复
一般不会有这个需求吧。。。
sohighthesky 2009-04-14
  • 打赏
  • 举报
回复
code=JScript]
<script>
function handerToClick(){
var obj=document.getElementById("btn1");
if(document.all){//IE中
obj.fireEvent("onclick");
} else {
var e=document.createEvent('MouseEvent');//LZ你多写了个s啊
e.initEvent('click',false,false);
obj.dispatchEvent(e);
}
}
</script>
[/code]
[
yufan916 2009-04-13
  • 打赏
  • 举报
回复
顶上去
yufan916 2009-04-13
  • 打赏
  • 举报
回复
<body>
<div id="warp">
<div id="warp_i">
<%@ include file="../top.jsp"%>
<%@ include file="../top_nav.jsp"%>
<div id="file_f_warp">
<div id="title_fill">
<ul>
<li class="title"></li>
</ul>
</div>
<div id="infobox_f">
<ul class="title">
<li class="t">文件上传</li>
<li class="tg">文件下载</li>
<li class="logout">
<input type="image" name="imageField" id="imageField" src="images/supervise/file_f_r3_c6.png" />
</li>
<li class="us_r"></li>
<li class="us_c">23131232323</li>
<li class="us_l"></li>
<li class="wel">欢迎您:</li>
</ul>
<form method="post" action="<c:url value="/fileupLoadTransfers.do"/>" name="fileuploadForm" enctype="multipart/form-data">
<ul class="unit_title">
<li>请选择需要上传的单位</li>
<li class="x"><a href="#" onclick="orgnoselect();">反选</a></li>
<li class="x"><a href="#" onclick="orgselectall();">全选</a></li>
</ul>
<ul class="unit_list">
<c:forEach items="${orgnization}" var="orgs" varStatus="status">
<li class="select">
<input type="checkbox" value="<c:out value="${orgs.orgId}"/>"
id="<c:out value="${orgs.orgId}"/>" name="orgIds"/>
</li>
<li><c:out value="${orgs.orgName}"/></li>
<c:if test="${status.count%5==0 && status.count%2!=0}">
</ul>
<ul class="unit_list">
</c:if>
<c:if test="${status.count%5==0 && status.count%2==0}">
</ul>
<ul class="unit_list">
</c:if>
<c:if test="${status.last}">
<c:if test="${orgCount%5!=0}">
<c:forEach var="i" begin="1" end="${5-(orgCount%5)}" step="1">
<li class="select">
</li>
</c:forEach>
</c:if>
</c:if>
</c:forEach>
</ul>

<ul class="unit_title">
<li>请选择专题</li>
<li class="x"><a href="#" onclick="dictnoselect()">反选</a></li>
<li class="x"><a href="#" onclick="dictselectall();">全选</a></li>
</ul>
<ul class="unit_list">
<c:forEach items="${dictionary}" var="dict" varStatus="status">
<li class="select">
<input type="checkbox" value="<c:out value="${dict.recordId}"/>"
id="<c:out value="${dict.recordId}"/>" name="recordId"/>
</li>
<li><c:out value="${dict.dictItem}"/></li>
<c:if test="${status.count%5==0 && status.count%2!=0}">
</ul>
<ul class="unit_list">
</c:if>
<c:if test="${status.count%5==0 && status.count%2==0}">
</ul>
<ul class="unit_list">
</c:if>
<c:if test="${status.last}">
<c:if test="${dictCount%5!=0}">
<c:forEach var="i" begin="1" end="${5-(dictCount%5)}" step="1">
<li class="select">
</li>
</c:forEach>
</c:if>
</c:if>
</c:forEach>
</ul>

<ul class="cut_off_rule">
</ul>
<ul class="file_f">
<li>请选择文件上传</li>

<li class="x" ><a href="#" onclick="javascript:btn_click();">增加附件</a></li><li class="p_img"><a href="#"><img src="images/supervise/add.png" /></a></li>
</ul>
<ul class="file_fb">
<li>
<input style="DISPLAY: none" type="file" onchange="fileChange(this,text1)" name="upLoadFile1" id="upLoadFile1" >
<input type="text" name="text1" id="" class="textfield_file_fb">  <input onclick="fileClick('upLoadFile1');" type="button" class="button_change">
</li>
</ul>

<ul class="file_fb">
<li>
<input style="DISPLAY: none" type="file" onchange="fileChange(this,text2)" name="upLoadFile2" id="upLoadFile2">
<input type="text" name="text2" id="" class="textfield_file_fb">  <input onclick="fileClick('upLoadFile2');" type="button" class="button_change">
</li>
</ul>

<ul class="file_fb">
<li>
<input style="DISPLAY: none" type="file" onchange="fileChange(this,text3)" name="upLoadFile3" id="upLoadFile3">
<input type="text" name="text3" id="" class="textfield_file_fb">  <input onclick="fileClick('upLoadFile3');" type="button" class="button_change">
</li>
</ul>

<input type="hidden" name="fileCount" id="fileCount" value="3">

<TABLE id="testTbl1" width="100%" border=0 align="center" >
<tbody id ="testTbl">

</tbody>
</TABLE>

<ul class="cut_off_rule">
</ul>
<ul class="file_fbf">
<li>
<input type="image" name="imageField3" id="imageField3" src="images/supervise/fdb.png" />
</li>
</ul>


</div>

<div id="title_bottom_fill"></div>
</div>
</div>
</div>
</div>

<div id="footer"><%@ include file="../bottom.jsp"%></div>
</form>
</body>

其实就是加input type = file 加样式
luojihaidao 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shenzhenNBA 的回复:]
是 onclick ,不用太懒,就多加两个字符 on 而已,呵呵
[/Quote]

这位仁兄有意思。onclick,click 都可以。
不过onclick 是事件,可以赋值的。

而click 不可以赋值。

还有LZ 我click在FF下是好用的, 你调的对象不同, 可能有不同的效果。 你可以把代码贴出来看看。
Siramizu 2009-04-13
  • 打赏
  • 举报
回复
试试addEventListener
yufan916 2009-04-13
  • 打赏
  • 举报
回复
1楼是什么意思啊,能说的具体点吗?
shenzhenNBA 2009-04-13
  • 打赏
  • 举报
回复
是 onclick ,不用太懒,就多加两个字符 on 而已,呵呵
jack420124 2009-04-13
  • 打赏
  • 举报
回复
function fileClick(name){

document.getElementById(name).style.cssText='display:block';

if(document.all)
{
document.getElementById(name).fireEvent("onchange");
}
else{


var evt = document.createEvent('HTMLEvents');
evt.initEvent('change',true,true);
document.getElementById(name).dispatchEvent( evt );


}
}
yufan916 2009-04-13
  • 打赏
  • 举报
回复
就是给input type=file替换样式,首先隐藏一个input type=file,然后放一个input type= button.在点击button的时候,触发input type=file的click.就这样
jack420124 2009-04-13
  • 打赏
  • 举报
回复
还有你是干什么,你的意图你是要做什么
加载更多回复(4)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧