Паролингизни унутдингизми?
Login
Left, Right, Center Left, Center, Right Center, Left, Right



6-Dars JavaScript - ДАРЧА ВА ДИНАМИК ЯРАТИЛУВЧИ ДОКУМЕНТЛАР

ДАРЧА ВА ДИНАМИК ЯРАТИЛУВЧИ ДОКУМЕНТЛАР.

Дарча яратиш.

Броузерда янги дарча яратиш JavaS нинг энг зур кулайликларидан биридир. Биз бу янги дарчада янги документларни (масалан уша html документларини) ёки янги материалларни (динамик равишда) яратиб куйиш мумкин. Дастлаб биз янги дарча очиш кейин унга html – сахифани кандай юклашни ва нихоят уни кандай ёпишни курамиз. Куйида келтирилган скрипт браузерда янги дарча очади ва унга кандайдир Web сахифани юклайди.

<html>
<head>
<script language="JavaScript">
<!-- hide

function openWin() {
myWin=open("menu.html");
}

// -->
</script>
</head>
<body>

<form>
<input type="button" value="Open new window" onClick="openWin()">
</form>

</body>
</html>

Келтирилган мисолимизда янги дарча open усули ёрдамида menu.htm сахифаси ёзилади. Биз дарча яратиш жараёнини бошкариш имкониятига эга эканлигингизни айтиб утишимиз керак. Масалан, янги дарча макола сатрига, ускуналар сатрига ёки мундарижага эга булиш мумкинлигини курсатишингиз мумкин. Масалан, навбатдаги скриптда 400х300 нуктали улчамдан иборат янги дарча очилади, уларга макола сатрига, на ускуналар панелига ва яна мундарижага эга.
<html>
<head>
<script language="JavaScript">
<!-- hide

function openWin2() {
myWin= open("ьутг.htm", "displayWindow",
"width=400,height=300,status=no,toolbar=no,menubar=no");
}

// -->
</script>
</head>
<body>

<form>
<input type="button" value="Open new window" onClick="openWin2()">
</form>

</body>
</html>

Куриб турганингиздек дарча тартибини “width = 400, width = 300, status = no, toolbar=no,menubar = no” сатрида расмийлаштирамиз. Шунга эътиборингизни каратингки сизга бу сатрда символлар орасида буш жой куйиш талаб куйидмайди. Дарча бошкариладиган хоссалар руйхати

directories

yes|no

height

количество пикселов

location

yes|no

menubar

yes|no

resizable

yes|no

scrollbars

yes|no

status

yes|no

toolbar

yes|no

width

количество пикселов

JavaS тилининг 1.2 версиясига бир неча янги хоссалар кушилган (яъни netscape navigator 4.0) сиз бу янги хосасаларни netscape 2x, 3x ёки Microsoft Internet Explorer 3x учун материал тайёрлашда ишлата олмайсиз чунки браузер Java s ни 1.2 версиясига тушунмайди.
Дарчанинг янги хоссалари

alwaysLowered

yes|no

alwaysRaised

yes|no

dependent

yes|no

hotkeys

yes|no

innerWidth

количество пикселов (заменяет width)

innerHeight

количество пикселов (заменяет height)

outerWidth

количество пикселов

outerHeight

количество пикселов

screenX

количество пикселов

screenY

количество пикселов

titlebar

yes|no

z-lock

yes|no

Биз бу хоссаларнинг изохини Java S тилининг 1.2 версияси тарифидан топишингиз мумкин. Сунгрок улардан бир нечасига тушинтириш ва мисоллар бериб утамиз. Масалан, энди сиз бу хоссалар ёрдамида янги очилаётган экраннинг кайси жойида жойлашишини аниклашингиз мумкин. Java S нинг эски версиясида сузда бундай имконият йук.

Дарча номи.

Куриб турганингиздек дарча очаётганда бу учта аргументдан фойдаланишимиз керак:
myWin= open("bla.htm", "displayWindow",
"width=400,height=300,status=no,toolbar=no,menubar=no");
2 – аргумент кимга керак? Бу дарча номи юкорида бу у target параметрида кандай ишлатилишини курган эдик. Демак, агар сиз дарча номини билсангиз у ерга янги сахифа юклашингиз мумкин:
<a href="/bla.html" target="displayWindow">
Бунда сиздан мос дарча номини курсатиш талаб килинади (агар шундай дарча мавжуд булмаса, шу номли янги дарча яратилади ). Шунга эътиборингизни каратингки, бу ердаги mywin дарча номи эмас. Факатгина шу узгарувчи билан дарчага рухсатни олмайсиз. Модомики у оддий узгарувчи экан, унинг харакат майдони факатгина у аниклаганунча скрипт билан белгиланади. Бундан ташкари дарча номи ( жорий холатда display window ) ажойиб узгарувчи булиб уни ихтиёрий броузер дарчасидан туриб фойдаланса булади.

Дарчаларни ёпиш.

Сиз шунингдек Java S тили ёрдамида дарчаларни ёпиш имкониятига эгасиз. Буни килишда сизга close ( ) усули ёрдам беради. Келинг олдин килганимиздек, янги дарча очамиз ва унга навбатдаги сахифани юклаймиз.
<html>
<script language="JavaScript">
<!-- hide

function closeIt() {
close();
}

// -->
</script>

<center>
<form>
<input type=button value="Close it" onClick="closeIt()">
</form>
</center>

</html>

Энди эса, агар сиз янги дарча тугмачани боссангиз у ёпилади. Open ( ) ва close ( ) бу window объектининг усуллари хисобланади. Шуни эсда тутиш керакки, биз факат open( ) ва close( ) деб эмас, балки window.open( ) ва window.close ) деб ёзишимиз керак. Лекин бизникидай холатда window объектининг тушириб колдириш мумкин, чунки агар сиз бу объектнинг факатгина 1 усулини чакирмокчи булсангиз window ни колдирса булади. ( Бу факат шу объект учун мумкин булган хол ).

Документларни динамик яратиш.

Энди биз Java S нинг энг зур имконияти хисобланиш документларни динамик яратишларни куриб чикамиз. Яъни энди сиз скриптингизга Java S тилида узи янги html сахифалар яратишга рухсат беришингиз керак. Бундан ташкари сиз шу тарика бошка Web документлар яъни vrlm – сахналар ва бошкалар каби. Кулайлик учун сиз бу документларни алохида дарча ёки фреймларда жойлаштиришингиз мумкин. Дастлаб биз оддий html документ яратамиз ва буни янги дарчада курсатамиз. Унинг скрипти куйидагича:
<html>
<head>
<script language="JavaScript">
<!-- hide

function openWin3() {
myWin= open("", "displayWindow",
"width=500,height=400,status=yes,toolbar=yes,menubar=yes");

// открыть объект document для последующей печати
myWin.document.open();

// генерировать новый документ
myWin.document.write("<html><head><title>On-the-fly");
myWin.document.write("</title></head><body>");
myWin.document.write("<center><font size=+3>");
myWin.document.write("This HTML-document has been created ");
myWin.document.write("with the help of JavaScript!");
myWin.document.write("</font></center>");
myWin.document.write("</body></html>");

// закрыть документ - (но не окно!)
myWin.document.close();
}

// -->
</script>
</head>
<body>

<form>
<input type=button value="On-the-fly" onClick="openWin3()">
</form>

</body>
</html>

Келинг mywin3() функциясини куриб чикамиз. Афтидан бу дастлаб браузерга янги дарча очамиз. Open() функциянинг 1 чи аргументи () буш сатр булгани учун яъни у шуни билдирадики, бу жорий холатда url нинг аник адресини курсатишини мумкин. Браузер факат мавжуд документларни ишлаш эмас, балки у янги документларни кушимча равишда яратиши хам керак. Скриптда бу mywin узгарувчисини аниклаймиз. Ва унинг ёрдамида биз янги дарчага рухсат олиб биламиз. Шунга эътиборингизни каратингки, жорий холатда ушбу максад билан биз дарча номига ( DisplayWindow ) мурожат кила олмаймиз. Дарчани очганимиздан сунг document нинг объектини ёзиш учун очишга жавоб келади. Бу ушбу буйрук ёрдамида амалга оширилади:
// документ объектини навбатдаги босмада очиш

myWin.document.open();

Бу ерда биз document объектининг усули open ( ) га мурожат киламиз. Бирок бу усул window объектининг open ( ) усули билан умуман бир хил эмас. Бу буйрук янги дарча очмайди, у факат document ни навбатдаги босмага тайёрлайди. Бундан ташкари, бу my win олд кушимчасини document open ( ) олдидан кушишингиз керак, бу бизга янги дарча ёзиш имконини беради.
Куйидаги скрипт сатрларидаги document.write ( ) чакириги ёрдамида янги документ ёрдамида янги документ матни шаклланади:

// янги документ ташкил этиш
myWin.document.write("<html><head><title>On-the-fly");
myWin.document.write("</title></head><body>");
myWin.document.write("<center><font size=+3>");
myWin.document.write("This HTML-document has been created ");
myWin.document.write("with the help of JavaScript!");
myWin.document.write("</font></center>");
myWin.document.write("</body></html>");

куриб турганингиздек, биз бу ерда html тилининг оддий тегларини ёзамиз. Яъни бу хакикий html лойихасини ташкил этамиз. Бунда сиз html нинг ихтиёрий тегларидан фойдаланишингиз мумкин. Буни тугатиш учун биз яна документни ёпишимиз керак. Бу навбатдаги буйрук оркали бажарилади:
// документни ёпиш - ( дарчани эмас )
mywin.document.close ( );
Айтиб утганимиздек, сиз факат документларни динамик яратиш эмас, балки уз ихтиёрингизга кура уларни у ёки бу фреймларда жойлаштиришимиз мумкин. Масалан, сиз 2 та фреймга эга булсангиз ва улар frame1 ва frame2 номли булса ва frame2 да янги документ ташкил килмокчи булсангиз у холда сиз frame1 да туриб ушбуларни ёзсангиз етарли булади:
parent.frame2.document.open();

parent.frame2.document.write("Here goes your HTML-code");

parent.frame2.document.close();

Share