จะควบคุมการเลื่อนของ iframe ที่ฝังอยู่ในเพจได้อย่างไร วิธีการคือการใช้วิธีการเลื่อนของหน้าต่าง iframe:
1. รับวัตถุหน้าต่างของ iframe
var iwin = document.getElementById('iframe1').contentWindow;
2. รับวัตถุเอกสารหน้าต่างของ iframe
var doc = iwin.document;
3. เรียกวิธีการเลื่อนของวัตถุหน้าต่าง iframe
iwin.scroll(0,doc.body.scrollHeight);
พารามิเตอร์สองตัวของการเลื่อนคือจำนวนการเลื่อนของแกน x และ y
doc.body.scrollHeight คือความสูงของหน้า iframe (รวมถึงส่วนที่ไม่แสดง)
ตัวอย่างการใช้งานที่ครอบคลุมมีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
<html>
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>การทดสอบโฮเวอร์</title>
<style type="text/css">
อูล{
สีพื้นหลัง:#ff00ff;
จอแสดงผล:บล็อก;
-
.toc ลี{
ตำแหน่ง:ญาติ; ความกว้าง:10em;
สีพื้นหลัง:#00ff00;
จอแสดงผล: บล็อก;
-
ลี้ {
/*display:block;*/ /*หากแสดงในโหมดบล็อก มันจะครอบครองพื้นที่องค์ประกอบหลักทั้งหมด*/
สีพื้นหลัง:#0000ff;
} /*ต้องสร้างองค์ประกอบระดับบล็อก*/
หลี่ไอ{
จอแสดงผล:ไม่มี;
-
ลี้:โฮเวอร์{
การจัดแนวข้อความ: ซ้าย;
}/*โค้ดที่เพิ่มที่นี่ใช้สำหรับแสดง IE6 เท่านั้น ไม่มีฟังก์ชันพิเศษใด ๆ สามารถเขียนได้ยกเว้นการตกแต่งข้อความ สี และ z-index*/
.toc li a:โฮเวอร์ i{
จอแสดงผล:บล็อก;
ความกว้าง:6em;
ตำแหน่ง:แน่นอน;
ด้านบน:0;
left:100%; /* ในที่นี้ 100% หมายถึงความกว้างที่สัมพันธ์กับองค์ประกอบ li*/
ระยะขอบ:-1em 0 0 0em;
ช่องว่างภายใน:1em;
พื้นหลัง:#cde;
เส้นขอบ: 1px สีแดงทึบ;
การจัดแนวข้อความ: ซ้าย;
ดัชนี z:10,000;
-
</สไตล์>
</หัว>
<ร่างกาย>
<iframe id="iframe1" src=""></iframe>
รหัสเอชทีเอ็ม
<ul id="toc">
<li><a href="1.html">บทที่ 1<i>ซึ่งมังกรถูกพบเห็น</i></a></li>
<li><a href="2.html">บทที่ 1<i>อัศวินถูกอัญเชิญ</i></a></li>
<li><a href="3.html">บทที่ 1<i>ซึ่งความล้มเหลวทำให้ผิดหวัง</i></a></li>
<li><a href="4.html">บทที่ 1<i>ซึ่งมังกรถูกพบเห็น</i></a></li>
<li><a href="5.html">บทที่ 1<i>ซึ่งมังกรถูกพบเห็น</i></a></li>
<li><a href="6.html">บทที่ 1<i>ซึ่งมังกรถูกพบเห็น</i></a></li>
<li><a href="7.html">บทที่ 1<i>ซึ่งมังกรถูกพบเห็น</i></a></li>
</ul>
<ภาษาสคริปต์ = "จาวาสคริปต์">
ฟังก์ชั่น getElementAbsPos (e) {
var t = e.offsetTop;
var l = e.offsetLeft;
ในขณะที่ (e = e.offsetParent) {
t += e.offsetTop;
l += e.offsetLeft;
-
กลับ {ซ้าย: l, บน: t};
-
ฟังก์ชั่น getPosition (obj) {
var ซ้าย = 0;
ด้านบนสุด = 0;
ในขณะที่(obj != document.body){
ซ้าย = obj.offsetLeft;
ด้านบน = obj.offsetTop;
obj = obj.offsetParent;
-
กลับไปทางซ้าย;
-
var lis = document.getElementsByTagName('li');
var iwin = document.getElementById('iframe1').contentWindow;
var doc = iwin.document;
สำหรับ(var i=0;i<lis.length;i++){
lis[i].onmouseover = ฟังก์ชั่น(){
var obji = this.childNodes[0].childNodes[1];
doc.writeln('<br>'+ obji.innerText + ',' + getElementAbsPos(document.getElementById('toc')).left);
doc.writeln('<br>'+ obji.offsetLeft + ',' + getElementAbsPos(obji).left + ',' + obji.offsetWidth+ ',' + obji.style.left);
doc.writeln('<br><b>'+ doc.body.scrollHeight + '</b>')
iwin.scroll(0,doc.body.scrollHeight);
//iwin.scrollTo(10,000); //ไม่ถูกต้อง
-
-
</สคริปต์>
</ร่างกาย>
</html>