今天由于客戶對(duì)功能提出新要求。采用js操作iframe解決問(wèn)題。特記錄其中遇到的問(wèn)題。
用Js控制iframe內(nèi)表單提交
代碼如下:
頁(yè)面加載時(shí),遇到iframe就直接跳過(guò)去,加載下面的內(nèi)容,然后再回來(lái)加載iframe,當(dāng)然也可以理解成遇到iframe又開(kāi)了一個(gè)線程來(lái)加載iframe,但是因?yàn)樯婕暗叫碌?/span>IO操作比較耗時(shí),所以如果在iframe下寫(xiě)了js操作的話,會(huì)提示錯(cuò)誤。可以采用onload來(lái)觸發(fā)js操作執(zhí)行。
在注意:(知道的就不要看了)
用Js控制iframe內(nèi)表單提交
代碼如下:
1
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
2
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3
<html>
4
<head>
5
<title>c.jsp</title>
6
7
<meta http-equiv="pragma" content="no-cache">
8
<meta http-equiv="cache-control" content="no-cache">
9
<meta http-equiv="expires" content="0">
10
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
11
<meta http-equiv="description" content="This is my page">
12
13
<script type="text/javascript">
14
<!--
15
function reg(){
16
jsi.document.all.username.value="xxx";
17
jsi.document.all.userid.value="xxx>";
18
jsi.document.all.flag.value="xxx";
19
jsi.document.forms["jsf"].submit();
20
window.open("http://js.51baojian.net","_blank");
21
setTimeout("",3000);
22
window.location.href="http://jss.51baojian.net";
23
}
24
-->
25
</script>
26
</head>
27
28
<body onload="reg();">
29
<table cellpadding="0" cellspacing="0" border="0">
30
<tr><td>
31
頁(yè)面進(jìn)入中

..
32
<iframe id="jsi" name="jsi" frameborder="0"
33
src="b.jsp" height="0" width="0"
34
></iframe>
35
</td></tr>
36
</table>
37
</body>
38
</html>
b.jsp代碼為:
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31




32

33

34

35

36

37

38

1
2
<form id="jsf" name="jsf" action="url">
3
<input type="hidden" name="username" value="">
4
<input type="hidden" name="userid" value="">
5
<input type="hidden" name="flag" value="">
6
</form>
7
注意:
2

3

4

5

6

7

頁(yè)面加載時(shí),遇到iframe就直接跳過(guò)去,加載下面的內(nèi)容,然后再回來(lái)加載iframe,當(dāng)然也可以理解成遇到iframe又開(kāi)了一個(gè)線程來(lái)加載iframe,但是因?yàn)樯婕暗叫碌?/span>IO操作比較耗時(shí),所以如果在iframe下寫(xiě)了js操作的話,會(huì)提示錯(cuò)誤。可以采用onload來(lái)觸發(fā)js操作執(zhí)行。
在注意:(知道的就不要看了)
onload指整個(gè)頁(yè)面加載完成后再執(zhí)行init()函數(shù),而不是當(dāng)頁(yè)面加載到<body>時(shí)就開(kāi)始執(zhí)行。
同樣,onunload指整個(gè)頁(yè)面卸載完成(關(guān)閉)后。