2 u013081752 u013081752 于 2016.03.30 13:01 提问

关于window.onload事件及post表单自动登录问题
                各位道友好,关于onload在网上查了很多资料,各家众说纷纭。
            最近做一个在A网站跳转B网站并自动登录,用户密码等用A网站此用户的资料。我的思路很简单:将数据从A中传到B,B接收数据,并将接收的数据填入表单,然后自动提交。
            我提交的方式是用一个onload事件去调用登录按钮的函数。
            但是在这个onload上出现了问题。

8个回答

u012377333
u012377333   Rxr 2016.03.30 13:29
已采纳
 1. window.onload=ParamOnload
 改为
 1. window.onload=ParamOnload()
 进去后,
 var form = document.getElementById("bathePlanAdd");
    form.action= basePath + "PlanAdd.action" +
        "?startDate=" + startDate + "&start=" + start;
    form.submit();
u012377333
u012377333   Rxr 2016.03.30 13:08

onload出现了什么问题呢?可否具体描述一下呢?

u013081752
u013081752 代码已贴
2 年多之前 回复
qq978450288
qq978450288   2016.03.30 13:08

如果A B都是你们公司的网站 应该考虑单点登录了。
如果就是希望用你现在的思路处理。 可以直接ajax 获取get传值,进行验证 或者 在B的Action里直接处理啊
你没说出你的问题~

u013081752
u013081752 一贴代码~ 求帮助
2 年多之前 回复
u013081752
u013081752   2016.03.30 13:23

直接贴代码吧 B网站上有个FORM表单 name=fm post 提交

我加了个JS
functiong ParamOnload(){
//如果传入数据不为空的判断
fm.action="/xxxx/logonin.do";
}
1. window.onload=ParamOnload;
我之前加过测试 是可以进去的,但说是fm未定义
2.window.onload=fuction(){ParamOnload():}
这种方式也不好使

我刚才又重新编译了下代码~ 发现无论怎么样都进不去这个函数了~  用浏览器调试也没调出来个所以然来!!!
u013081752
u013081752 回复qq978450288: ..那是我打错了~
2 年多之前 回复
qq978450288
qq978450288 你function 多了个g 其次 没有提交——form.submit();
2 年多之前 回复
u012377333
u012377333   Rxr 2016.03.30 13:29

fm未定义就是说你没有获取到表单对象

u012377333
u012377333   Rxr 2016.03.30 13:30

还可以通过这种方式获得表单对象的;

 var path = getBasePath();
    document.getElementById("pageNo").value = pageNo;
    document.forms[0].action = path + "Show.action";
    document.forms[0].submit();
u013081752
u013081752 看一下下面的截图,我FORM 设了ID属性,id=bathePlanAdd
2 年多之前 回复
u013081752
u013081752   2016.03.30 13:54

图片说明 不行的~

showbo
showbo   Ds   Rxr 2016.03.30 14:37

确认你这个表单在dom中而且没有其他id重名的控件?存在你那个dom对象不可能获取不到的,自己好好检查id的拼写对了没有

u013081752
u013081752 回复无聊码农: 帅哥 我知道原因了! 以为之前form是NULL 并不是undefine 所以不是没取到 是跟本就没有值 ,所以我把这段JS代码放到了FORM的下面,,,,,结果可以了~~~因为HTML是逐行执行的!!!!!
2 年多之前 回复
showbo
showbo 回复u013081752: 不可能。。。最好是发代码全来<form id="bathePlanAdd"></form> <script> window.onload = function () { alert(document.getElementById('bathePlanAdd'))/*[object HTMLFormElement]*/ } </script>
2 年多之前 回复
u013081752
u013081752 我检查了一下 没有重名的 而且我换了个特殊的名字 并且直接复制过去的,我将它输出出来是NULL
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
window.onload事件的作用是什么
window.onload事件的作用是什么: 在很多操作dom的代码中,都会有标题中事件的使用,下面就简单介绍一下它的作用。 此事件只有当文档内容加载完毕才会触发,这样可以避免无法获取元素的现象。 代码实例如下: [HTML] 纯文本查看 复制代码运行代码 01 02 03 04 05 06 07 08
onload和onclick及其他事件的默认执行顺序
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=Edge"/> <!-- 以ie最新模式渲染当前页面 --> <!-- X-UA-Compatible是ie8专有meta属性
window.onload使用时遇到的问题_1
一个简单的创建节点插入节点的代码。 若把window.onload函数这样写,运行会出现错误。 错误代码:window.onload=function() { var para=document.createElement("p"); var txt1=document.createTextNode("This is"); para.appendChild(txt1); var
页面加载之window.onload=function(){} 和 $(function(){})的区别
通用的页面加载js有四种方式: 1.window.onload = function(){}; —-js 2.$(window).load(function(){});——Jquery 3.$(document).ready(function(){});–Jquery 4.$(function(){});———————Jquery 其中1和2为同一种,3和4为同一种 1、2表示:页面全部
JS中window.onload事件详解
window.onload事件方法的探讨和一个易懂的实例演示。
各浏览器对页面 onload 事件处理方式不一致
作者:钱宝坤 标准参考 关于 HTML 4.01 规范中 BODY 标记的 onload 属性说明: http://www.w3.org/TR/html401/struct/global.html#h-7.5.1 关于 HTML 4.01 规范中 onload 内在事件说明:http://www.w3.org/TR/html401/interact/scripts.html#adef
window.onload 事件
load事件通常用于检测当前文档内容或者图片是否加载完毕,在window对象上load事件,也就是window.onload事件。 浏览器支持: (1).IE浏览器支持此事件。 (2).edge浏览器支持此事件。 (3).火狐浏览器支持此事件。 (4).Opera浏览器支持此事件。 (5).谷歌浏览器支持此事件。 (6).safria浏览器支持此事件
window.onload同时执行多个函数的解决方法
这个老问题了,也是JavaScript中很多时候都要用到的。现在就把解决方案给总结一下。 1.最简单的调用方式 直接写到html的body标签里面,如下示例:  程序代码       2.在JavaScript语句里调用  程序代码 function f1(){...} window.onload=f1; 3.同时调用多个函数(body方式)  程序代
同时处理多个window.onload事件
有时引用其它js时,其js却使用了window.onload事件,这样的话,引入的页面的onload事件就有可能执行不了,怎样才能两个都运行呢?除了将两个写到一块儿去的方法外,(为了保持各个js的独立引用性,写在一块儿,使得太耦合了。)还有其他的方法吗?答案当然是肯定了。 if(window.onload!=null){ eval("theOldFun="+window.onload.toS
解决window.onload事件重复赋值
最经遇到js window.onload事件被重复赋值的事,由于window.onload只能执行最后绑定的事件。所以绑定新的window.onload事件事需要把未知的已绑定的window.onload事件先进行迁移。 如: oldonload=window.onload; window.onload=function(){ oldonload(); newonload