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 代码已贴
一年多之前 回复
qq978450288
qq978450288   2016.03.30 13:08

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

u013081752
u013081752 一贴代码~ 求帮助
一年多之前 回复
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: ..那是我打错了~
一年多之前 回复
qq978450288
qq978450288 你function 多了个g 其次 没有提交——form.submit();
一年多之前 回复
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
一年多之前 回复
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是逐行执行的!!!!!
一年多之前 回复
showbo
showbo 回复u013081752: 不可能。。。最好是发代码全来<form id="bathePlanAdd"></form> <script> window.onload = function () { alert(document.getElementById('bathePlanAdd'))/*[object HTMLFormElement]*/ } </script>
一年多之前 回复
u013081752
u013081752 我检查了一下 没有重名的 而且我换了个特殊的名字 并且直接复制过去的,我将它输出出来是NULL
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!