Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >由iframe引起的问题

由iframe引起的问题
EN

Stack Overflow用户
提问于 2012-09-14 09:11:21
回答 1查看 633关注 0票数 0

我有两个单选按钮(遍历和直接)在一个jsp form.Traverse正常提交表单和直接提交表单使用iframe.After提交表单使用iframe,如果我尝试正常提交,应用程序是在新的window.How中打开,以防止表单在新窗口中打开。

代码语言:javascript
运行
AI代码解释
复制
function submitAction() {       
        var fileValue = document.getElementById("file1").value;     
        if (fileValue == "") {
            alert("Please uploaded file type of .war or .html type");
            return false;

        }           
        var valuePassed = getCheckedRadio();
        var url="uploadfile.do?rad=" + valuePassed;     
        if (valuePassed == "traverse") {                    
            document.EntryForm.action = url; 
            document.EntryForm.submit();    //Normal way of submitting.                         
        }else if (valuePassed == "direct") {
            alert("direct");    
            url=url+"&fileName="+fileValue;             
            directConvert(document.EntryForm,url,'downloaddiv');                }
    }



function directConvert(form, action_url, div_id){               
        // Create the iframe...
        var iframe = document.createElement("iframe");
        iframe.setAttribute("id", "upload_iframe");     
        iframe.setAttribute("name", "upload_iframe");
        iframe.setAttribute("width", "0");
        iframe.setAttribute("height", "0");
        iframe.setAttribute("border", "0");
        iframe.setAttribute("style", "width: 0; height: 0; border: none;");
        // Add to document...
        form.parentNode.appendChild(iframe);
        //window.frames['upload_iframe'].name = "upload_iframe";     
        iframeId = document.getElementById("upload_iframe");     
        // Add event...

        var eventHandler = function () {     
                if (iframeId.detachEvent) iframeId.detachEvent("onload", eventHandler);
                else iframeId.removeEventListener("load", eventHandler, false);             
                // Message from server...    

                if (iframeId.contentDocument) {                
                    content = iframeId.contentDocument.body.innerHTML;
                } else if (iframeId.contentWindow) {                    
                    content = iframeId.contentWindow.document.body.innerHTML;
                } else if (iframeId.document) {                 
                    content = iframeId.document.body.innerHTML;
                }               
                document.getElementById(div_id).innerHTML = content;     
                // Del the iframe...
                setTimeout('iframeId.parentNode.removeChild(iframeId)',50);
            }

        if (iframeId.addEventListener) iframeId.addEventListener("load", eventHandler, true);
        if (iframeId.attachEvent) iframeId.attachEvent("onload", eventHandler);  

        // Set properties of form...
        form.setAttribute("target", "upload_iframe");
        form.setAttribute("action", action_url);
        form.setAttribute("method", "post");
        form.setAttribute("enctype", "multipart/form-data");
        form.setAttribute("encoding", "multipart/form-data");  
        form.submit();              
    }

当我第一次尝试遍历时,它工作正常,但通过iframe提交后,如果我尝试遍历,它会在新的window.How中打开,以防止它在新窗口中打开。

EN

回答 1

Stack Overflow用户

发布于 2012-09-14 10:58:51

因为您正在将EntryFormform对象传递给iframe,并在执行directConvert提交时更改form.setAttribute("target", "upload_iframe");

因此,即使您尝试通过traverse提交,form目标仍然保持不变,但是由于iframe已从页面中删除(setTimeout('iframeId.parentNode.removeChild(iframeId)',50);),因此在提交之后它将在一个新窗口中打开,而不是在iframe中打开。

因此,您可以在traverse submit:document.EntryForm.target = "_self"中将target改回_self

顺便说一下,在HTML4.01中,target属性是deprecated

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12421414

复制
相关文章
SpringBoot启动器
pom.xml文件 1.父项目 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> </parent> 他的父项目 <parent> <groupId>org.springframework.boot</groupId> <art
用户1112962
2018/07/03
1K0
springboot启动器
这篇文章中,我们将介绍Spring Boot Starters,并将讨论Spring Boot Starters的优点和优势。
叔牙
2020/11/19
1.6K0
springboot启动器
java启动器_JAVA基础:Java 启动器如何查找类
Java 启动器 java 将初始化 Java 虚拟机。虚拟机随即按以下顺序搜索和加载类:
全栈程序员站长
2022/09/08
1.2K0
为什么Vue(默认情况下)比React性能更好
本文不是要辩论 Vue 好还是 React 好,而是要看看这两个框架在低层次上是如何选择的。
前端小智@大迁世界
2022/09/28
6570
为什么Vue(默认情况下)比React性能更好
SpringBoot核心【starter启动器】
  SpringBoot为我们提供了简化企业级开发绝大多数场景的starter pom,只要使用了应用场景所需要的start pom,相关的技术配置将会消除,就可以得到SpringBoot为我们提供的自动配置的Bean。
用户4919348
2019/05/15
1.8K0
散文说python半篇——景观三元论与盖茨比的对话「建议收藏」
景观三元论问:盖茨比,你为何不用C++写代码?非要用ruby或者python这样的执行非常慢的语言呢?
全栈程序员站长
2022/07/07
2420
启动器—Alpha框架解析
启动优化,其实就是优化从点击icon到主页面展示这个过程的速度,让主界面尽量快的展现在用户面前。所以我们要做的就是找到那些耗时操作,并将其优化。
码上积木
2021/01/11
1.8K0
启动器—Alpha框架解析
springboot之场景启动器
首先看spring-boot-starter-parent,spring-boot-start就是场景启动器,这是所有项目的父项目,我们ctrl+鼠标左键点进去:
西西嘛呦
2020/08/26
5400
Spring Boot Runner启动器
Runner启动器 如果你想在Spring Boot启动的时候运行一些特定的代码,你可以实现接口 ApplicationRunner或者 CommandLineRunner,这两个接口实现方式一样,它们都只提供了一个run方法。 CommandLineRunner:启动获取命令行参数。 public interface CommandLineRunner { /** * Callback used to run the bean. * @param args incomin
Java技术栈
2018/03/30
8890
Spring Boot Runner启动器
Spring Boot Starters启动器
Starters是什么? Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。 Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。 Starters命名 Spring Boot官方的启动器都是以spring-boot-start
Java技术栈
2018/03/30
8820
Spring Boot Starters启动器
springboot自定义启动器
Spring Boot为大多数开源项目提供了许多启动器,很可能你想为你的项目或组织开发自己的自动配置,我们也可以用Spring Boot创建自定义启动器。
叔牙
2020/11/19
9820
springboot自定义启动器
如何制作U盘启动器?
下面,在Windows 操作系统上,以制作一个 Centos 版本的 U盘启动器为例, 进行说明。
云雀叫了一整天
2019/10/07
2.4K0
比尔•盖茨新冠检测:呈阳性
比尔•盖茨周二表示,他的新冠病毒检测结果呈阳性。 这位微软联合创始人在推特上宣布了病情,声称自己“出现了轻微症状,现正听从医疗专家们的建议进行隔离,直到恢复健康为止。” 他在另一条推文中补充道:“幸好我已种了疫苗,打了加强针,幸好获得了检测和优质的医疗服务。” 他特别指出,自己与前妻Melinda French Gates共同设立的盖茨基金会将于周二举行线下面对面会议,这是“两年来头一次,我很幸运能通过Teams见到各位,感谢他们所做的努力工作”,他是指微软的视频会议服务。 盖茨说:“我们将继续与合作伙伴
云头条
2022/05/12
1910
比尔•盖茨新冠检测:呈阳性
python 跨平台python脚本启动器
------------------------------------调用方式-------------------------------- import Launcher Launcher.launchBookExamples(['PyDemos.pyw'], trace=False) ----------------------------------Launcher.py--------------------------------
用户5760343
2022/05/13
6510
SpringBoot - FileStorage Starter场景启动器
Spring Boot - 手把手教小师妹自定义Spring Boot Starter
小小工匠
2022/04/21
1.3K0
SpringBoot - FileStorage Starter场景启动器
如何制作U盘启动器? Linux -> Windows
下面,在 LInux 操作系统上,以制作一个 Windows 版本的 U盘启动器为例, 进行说明。
云雀叫了一整天
2020/02/18
7.4K0
盖茨基金:成也数据,败也数据
比尔·盖茨是美国企业成功故事的典型代表。这个绝顶聪明的孩子,大学中途退学,创办自己的软件公司。而且他们公司开发的软件,最终用在了世界90% 的电脑上,比尔也因此赚到了数十亿美元的财富。后来,他退出江湖,将大部分财富捐献给慈善事业。比尔以自己和妻子的名义成立了“比尔&梅琳达·盖茨基金会”(Bill& Melinda Gates Foundation)。而且我们很高兴地看到该基金会在许多领域进行了大胆投资。它涉足的领域包括在发展中国家进行疟疾预防,在美国进行中学改革,以及对艾滋病(HIV/AIDS)的研究。盖
大数据文摘
2018/05/23
6030
Linux应急响应(四):盖茨木马
Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装。木马得名于其在变量函数的命名中,大量使用Gates这个单词。分析和清除盖茨木马的过程,可以发现有很多值得去学习和借鉴的地方。
Bypass
2019/07/08
2K0
Linux应急响应(四):盖茨木马
点击加载更多

相似问题

无法建造盖茨比启动器

15

盖茨比和盖茨比主题-博士

13

盖茨比XMLHttpRequest

10

盖茨比WorkerError:

10

盖茨比评论意象与盖茨比意象的区别?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档