IFrame的用法.docx
- 文档编号:6013805
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:6
- 大小:19.73KB
IFrame的用法.docx
《IFrame的用法.docx》由会员分享,可在线阅读,更多相关《IFrame的用法.docx(6页珍藏版)》请在冰豆网上搜索。
IFrame的用法
IFrame介绍:
换句话说,iframe可以指定其坐标位置。
大部分的时候我们用iframe去模拟一些特效。
例如我现在要求当前页面执行某个操作,而操作后肯定要有一个跳转的动作。
但是一旦跳转,原始页面就没了,这个时候可以让iframe内部做跳转,这样页面不动,而执行的内容也完成了。
如果iframe的尺寸是个0*0的,就可以模拟ajax的效果了。
Frame简单介绍:
在JAVA中,frame是一种控件,可作为父窗体加载其他swing控件。
在VB中,Frame是一种控件。
Frame控件为控件提供可标识的分组。
Frame可以在功能上进一步分割一个窗体-例如,把OptionButton控件分成几组。
一,Iframe标记的使用格式是
代码如下:
[html]viewplaincopyprint?
1.
src:
文件的路径,既可是HTML文件,也可以是文本、ASP等;
width、height:
"画中画"区域的宽与高;
scrolling:
当SRC的指定的HTML文件在指定的区域不显不完时,滚动选项,如果设置为NO,则不出现滚动条;如为Auto:
则自动出现滚动条;如为Yes,则显示;
FrameBorder:
区域边框的宽度,为了让“画中画“与邻近的内容相融合,常设置为0。
例如:
代码如下:
[html]viewplaincopyprint?
1.
二、父窗体与子窗体之间的相互控制
在脚本语言与对象层次中,包含Iframe的窗口我们称之为父窗体,另一个为子窗体,弄清这两者的关系很重要,因为要在父窗体中访问子窗体或相反都必须清楚对象层次,才能通过程序来访问并控制窗体。
1、在父窗体中访问并控制子窗体中的对象
在父窗体中,Iframe即子窗体是document对象的一个子对象,可以直接在脚本中访问子窗体中的对象。
代码如下:
[html]viewplaincopyprint?
1.
2.test.htm文件代码为:
3.
4.
5.
hello,my boy
6.
7.
如我们要改变ID号为myH1的H1标记里的文字为hello,mydear,则可用:
document.myH1.innerText="hello,mydear"(其中,document可省)
[csharp]viewplaincopyprint?
1.document.myH1.innerText="hello,my dear"
另一种使用方式:
[html]viewplaincopyprint?
1.
当加载父窗体时,默认同时加载子窗体(此时子窗体为空),但是当触发父窗体的某个事件时,要激发子窗体的事件,显示内容
[csharp]viewplaincopyprint?
1.///
2. /// 显示某道试题的答题记录,显示某一部分。
3. ///
4. /// 查询出20条答题记录
5. /// 为0
6. private void ShowAnswerRecord(DataTable dtOneQuestionRecords, string tableRecord, int pageIndex)
7. {
8. myframe.Attributes["src"] = "StuRecords.aspx";
9. }
10.
11. ///
12. /// 下一批
13. ///
14. ///
15. ///
16. protected void btnNextPage_Click(object sender, EventArgs e)
17. {
18. myframe.Attributes["src"] = "StuRecords.aspx";
19. }
子窗体的判断
[csharp]viewplaincopyprint?
1.///
2./// 窗体加载时,判断session的值是否为空,空则加载子窗体空白页,否则执行子窗体的事件
3.///
4.///
5.///
6.
7. protected void Page_Load(object sender, EventArgs e)
8. {
9. if (Session["questionType"] !
= null)
10. {
11. ShowStuRecord();
12. }
13. else {
14. }
15. }
16.
17. public void ShowStuRecord() {
18.
19. //得到试题id
20. int questionIndex = Convert.ToInt32(Session["questionIndex"]);
21.
22. //获取考试id值
23. //string ExamID = DropExam.SelectedItem.Value;
24. string ExamID = "1306172117";
25. //查找试题记录--答题记录表
26. string tableRecord = Convert.ToString(Session["tableRecord"]);
27. //题型的value
28. //string UserName = Session["UserName"].ToString();
29. string UserName = "xvshu";
30. string questionType = Session["questionType"].ToString();
31. //调用王永俊的方法,查看答题记录前20条,并写入教师姓名
32. Hashtable map = new Hashtable();
33. map.Add("TableNameRecord", tableRecord);//题型value和表名
34. map.Add("QuestionType", questionType);
35. map.Add("Teacher", UserName);
36. map.Add("QuestionID", questionIndex);
37. map.Add("ExamID", ExamID);
38. QuestionContextBLL awardingBLL = new QuestionContextBLL(map);
39.
40. //查出答题记录
41. DataTable dtOneQuestionRecords = awardingBLL.SelectRecordTopbyQuestionID(map);
42. if (dtOneQuestionRecords.Rows.Count == 0)
43. {
44. MessageBox.Show(this, "已判完!
");
45. }
46.
47. lblFraction.Text = "标准分数:
" + Session["Fraction"];
48. int pageIndex = 0;
49. for (int i = 30 * pageIndex; i < 30 * pageIndex + 30 && i < dtOneQuestionRecords.Rows.Count; i++)
50. {
51. //显示答写的试题答案
52. TableCell tc = new TableCell();
53. tc.Text = (i + 1).ToString() + "答案:
" + dtOneQuestionRecords.Rows[i]["ExamAnswer"].ToString();
54.
55. TableRow tr = new TableRow();
56. tr.Cells.Add(tc);
57. tblAutoTable.Rows.Add(tr);
58.
59. TextBox textBox = new TextBox();
60. //得到试题记录的id号
61. string id = dtOneQuestionRecords.Rows[i]["ID"].ToString();
62. textBox.Text = dtOneQuestionRecords.Rows[i]["Fraction"].ToString();
63. //给评分控件设置id号
64. textBox.ID = tableRecord.Trim() + dtOneQuestionRecords.Rows[i]["ID"].ToString();
65. textBox.Attributes.Add("Onblur", "javascript:
return CheckFraction(event.srcElement)&&JudgeQuestions('" + tableRecord.Trim() + "','" + id + "','" + textBox.ID + "')");
66. //textBox.Attributes.Add("Onblur", "javascript:
test()");
67. TableCell tc1 = new TableCell();
68. tc1.Controls.Add(textBox);
69. TableRow tr1 = new TableRow();
70. tr1.Cells.Add(tc1);
71. tblAutoTable.Rows.Add(tr1);
72. //Session["txtScores"] = textBox.ID;
73. }
74.
75. }
在这里的应用主要是根据id值来加载子页面!
当然我们也可以根据id值来对它进行不同的操作。
2、在子窗体中访问并控制父窗体中对象
在子窗体中我们可以通过其parent即父(双亲)对象来访问父窗口中的对象。
复制代码代码如下:
[html]viewplaincopyprint?
1.
2.
3.
4.
hello,my wife
5.
6.
如果要在myframe操作我们可以这样写:
parent.myframe.innerText="hello,myfriend"
这里parent对象就代表当前窗体(example.htm所在窗体),要在子窗体中访问父窗体中的对象,无一例外都通过parent对象来进行。
总结:
通过Iframe标记,我们可将那些不变的内容以Iframe来表示,这样,不必重复写相同的内容(框架),这有点象程序设计中的过程或函数,减省了多少繁琐的手工劳动!
另外,至关重要的是,它使页面的修改更为可行,因为,不必因为版式的调整而修改每个页面,你只需修改一个父窗体的版式即可了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IFrame 用法