设置iframe内表单target属性以兼容IE、Firefox【转载】

2011年11月19日 haibor 
 
 
 

今天有客户反应,在一产品网站的资源下载页面,用户登录提交后页面无反应!

经测试,Firefox下正常,IE下无反应!IE还真是腼腆,都点提交了,还无反应!!!

查看代码,发现登录表单及登录后显示的资源列表均由一个 iframe 框架加载,这里做个情境假设:表单文件为 A.asp,前端iframe文件为 B.asp。

A.asp 表单内容为:

<form name="down_form" action="a.asp" method="post">
    姓名:<input type="text" name="username" size=20>
    单号:<input type="text" name="password" size=20>
    <input type="submit" value="登 陆" />
</form>

B.asp 页面内容为:

<iframe id="downlist" src="http://xxx.com/A.asp"></iframe>

如此,访问 B.asp 页面操作登录时,IE浏览器下无反应,Firefox正常登录并返回下载列表!解决办法也很简单:

1、在 A.asp 页面的 <form > 部分,添加 target 代码,注意红色的 downlist,要与 iframe 的ID和name一致:

<form name="down_form" action="a.asp" method="post" target="downlist">

2、B.asp页面中 iframe 标签要求 id与name标签都要添加!完整如下:

<iframe id="downlist" name="downlist" src="http://xxx.com/A.asp"></iframe>

分享一些兼容性的示例代码:

<form  action="http://www.baidu.com" method="post" id="form_box" >
    <input type="submit" value="submit"/>
</form>
<iframe id="loginIframe" width="300" height="300"></iframe>
 
<script language="javascript">
    var _form=document.getElementById("form_box");
    _form.setAttribute("target","loginIframe");
</script>

IE:点击“submit”提交之后,form表单并未按照预想提交到“loginIframe”这个iframe中。

FF:点击“submit”提交之后,form表单按照预想提交到“loginIframe”这个iframe中。

解决此兼容问题: 在iframe中增加name属性即name=“loginIframe”

<iframe id="loginIframe" name="loginIframe" width="300" height="300"></iframe>

设置iframe内表单target属性以兼容IE、Firefox【转载】的更多相关文章

  1. .NET开源工作流RoadFlow-表单设计-新建表单(属性设置)

    点击表单设计工具栏上的 新建表单 按钮会弹出新表单属性设置框: 表单名称:新表单表名称. 数据连接:表单对应的数据库连接(此连接在 系统管理-->数据库连接 中维护). 数据表:表单对应的数据库 ...

  2. .NET前后台-JS获取/设置iframe内对象元素并进行数据处理

    转载请注明出处:果冻栋吖 这个主要是修改H3BPM一个批量审批的功能时候做的.先看下图: H3自带了批量审批的功能,也就是按钮1,有审批意见3,但是如果3里边不填写内容点击1之后,效果就是表单里边没有 ...

  3. iframe+form表单提交数据

    <h6>基于iframe+Form表单</h6> <iframe id="iframe" name="ifra" onclick= ...

  4. HTML5表单新属性

    HTML5表单新属性 autofocus  自动聚焦 <input type="text" autofocus> placeholder占位文本 tel         ...

  5. html/form表单常用属性认识

    1.form表单常用属性练习 <style> .form1 { margin: auto; height: 900px; width: 500px; text-align: center; ...

  6. HTML表单__表单元素属性

    看完"HTML表单__表单元素"那一节的同学会发现,同是input标签,type属性值不一样的时候,input类型完全不一样.type就是input的一个属性,除type之外,还有 ...

  7. form表单的属性标签

    form表单的常用标签 表单: <form id="" name="" method="post/get" action=" ...

  8. HTML5 表单新增属性

    1. 表单内元素的form属性 在H5中可以把form放到页面的任何地方,然后为该元素指定一个form属性,属性值为该表单的id,这样就可以声明该元素从属于指定表单了 <form id=&quo ...

  9. form表单target的用法,实现无刷新提交页面

    form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新.代码如下,首页在页面里准备一个form表单和一个iframe. <form action=&qu ...

随机推荐

  1. API网关+Kubernetes集群的架构替代了传统的Nginx(Ecs)+Tomcat(Ecs)

    API网关为K8s容器应用集群提供强大的接入能力_最佳实践_API 网关-阿里云 https://help.aliyun.com/document_detail/71623.html 在最后一节,我们 ...

  2. 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则

    负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...

  3. PHP webservice 的初接触

    webservice 现在是开始流行了,很多业务开启了这个功能.去年接触的一个金融类的项目有类似功能调用.当时没放心思研究,最两天试着接触了下,还真不错的.起步其实挺简单. 服务端的代码 server ...

  4. QT in VS 多语言实现(中英文切换,每个步骤都有截图,只有UTF8才能让Qt语言家正确读取。先qApp->removeTranslator,然后installTranslator,每个类都要写上槽函数RetranslateUI)

    最近项目需要软件具有中英文双语切换功能,而QT又自带此功能,现将实现方式记录下来. 说到中英文切换,少不了要了解QT的内部编码方式.在此就不详述QT编码方式了,具体可参考 彻底弄懂Qt的编码.只需要记 ...

  5. 禁止Centos系统You have new mail in /var/spool/mail/root提示

    禁止Centos系统You have new mail in /var/spool/mail/root提示 https://blog.csdn.net/oyym_mv/article/details/ ...

  6. abap 中modify 的使用

    1.modify table itab from wa Transporting f1 f2 ... 表示表itab中符合工作区wa 中关键字的一条数据的 f1 f2字段会被wa中对应的字段值更新. ...

  7. django+celery 实现定时任务

    利用 celery 实现定时任务 celery支持定时任务,设定好任务的执行时间,celery就会定时自动帮你执行, 这个定时任务模块叫celery beat Celery安装 由于celery 4. ...

  8. jsonp解决跨域问题

    日常开发网页中,时常遇到跨域问题,通常解决办法:后端提供的接口支持jsonp格式,前端采用dataType:jsonp. 一:Jquery封装的AJAX,dataType:jsonp格式的方法: $. ...

  9. index full scan和index fast full scan区别

    触发条件:只需要从索引中就可以取出所需要的结果集,此时就会走索引全扫描 Full Index Scan    按照数据的逻辑顺序读取数据块,会发生单块读事件, Fast Full Index Scan ...

  10. mycat 指定mycat节点

    mycat 指定节点: /*!mycat:dataNode=order1*/select seq_nextval('APPOINTMENT_NO'); 指定节点创建存储过程或建表: /*!mycat: ...