Browser Object Model

នៅ​ក្នុង​បរិបទ​នៃ browser វត្ថុ​មាន​ស្រាប់​នានា​នៅ​ក្នុង​ភាសា JS ​ត្រូវ​បាន​ចែក​ចេញ​ជា​ច្រើន​ផ្នែក និង​ត្រូវ​បាន​តំរៀប​ទៅ​តាម​ឋានានុក្រម​មួយ​ដ៏​ច្បាស់លាស់​ដូច​នៅ​ក្នុង​រូប​ខាង​ក្រោម​នេះ៖


នៅ​ក្នុង​ឋានុក្រម​នេះ DOM ជា​អក្សរ​កាត់​មក​ពី​ពាក្យ​ថា Document Object Model ដែល​ជា​វត្ថុ​ដែល​ជា​ផ្នែក​ដ៏​សំខាន់​មួយ​នៅ​ក្នុង​ភាសា JS ព្រោះ​វា​ផ្តល់​លទ្ធភាព​អោយ​យើង​អាច​ប្រើប្រាស់​កម្មវិធី JS ផ្សេង​ៗ ក្នុង​ការកែច្នៃ​និងឬ​រចនា​ធាតុ HTML ទាំងឡាយ​នៅ​ក្នុង​ទំព័រ HTML​នានា​។

ចំណែក​ឯ​ពាក្យ​ថា BOM វិញ មក​ពី​ពាក្យ​ថា Browser Object Model គឺ​ជា​វត្ថុ​ដែល​ជា​ផ្នែក​មួយទៀត​នៃ​ភាសា JS ដែល​នៅ​ក្នុង​នោះ​មាន​ក្បួនខ្នាត​ទាំងឡាយ​ពាក់ព័ន្ធ​នឹង​ការបង្កើត​និង​ឬ​រចនា​បង្អួច​របស់ browser និង​ក្បួនខ្នាត​ដទៃ​ទៀត​ទាក់ទង​នឹង navigator, screen, location, frames, history, និង XMLHttpRequest ។

យ៉ាងណាម៉ិញ ទោះ​ជា​វត្ថុ window ជា​ផ្នែក​នៅ​ខាង​លើ​គេ​យ៉ាង​ណា​ក៏ដោយ ក៏​ក្បួនខ្នាត​នៅ​ក្នុង​នោះ ត្រូវ​ចាត់​ថា​ស្ថិត​នៅ​ក្នុង​ផ្នែក BOM ដែរ​។ អាស្រ័យ​ហេតុនេះ យើង​អាច​យក​ក្បួនខ្នាត​ទាក់ទង​នឹង​ទំហំ​របស់​បង្អួច​ផ្សេង​ៗ​នៅ​ក្នុង browser មក​ប្រើ​ដូច​ខាង​ក្រោម​នេះ៖
<!DOCTYPE html>
<html>
  <head>
    <link href='https://fonts.googleapis.com/css?family=Odor+Mean+Chey' rel='stylesheet'>
  </head>
  <body style="font:14px/1.5 'Odor Mean Chey'">
  	

<script> var width = window.innerWidth; var height = window.innerHeight; var element = document.getElementById("demo"); element.innerHTML = "ប្រវែង​បណ្តោយ​របស់ browser គឺ: " + width + ", កំពស់​គឺ: " + height + "។"; </script> </body> </html>


នៅ​លើ​បន្ទាត់​លេខ 9 គឺ​ជា​ការយក​វិធី​ឈ្មោះ innerWidth() នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ផ្នែក window មកប្រើការ​ដើម្បី​ចំលង​យក​ប្រវែង​បណ្តោយ​របស់​ browser ។

នៅ​លើ​បន្ទាត់​លេខ 10 គឺ​ជា​ការយក​វិធី​ឈ្មោះ innerHeight() នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ផ្នែក window មកប្រើការ​ដើម្បី​ចំលង​យក​ប្រវែង​កំពស់​របស់ browser ។

មួយវិញទៀត ក្នុង​ករណី​យើង​ចង់​បង្កើត​ផ្ទាំងបង្អួច​របស់ browser ថ្មី​ៗ​ទៀត យើង​ត្រូវ​យក​វិធី​ឈ្មោះ open() នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ផ្នែក​ window មក​ប្រើ ហើយ​បើ​យើង​ចង់​បិទ​បង្អួច​ណា​មួយ យើង​ត្រូវ​យក​វិធី​ឈ្មោះ close មក​ប្រើ​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖
<!DOCTYPE html>
<html>
  <head>
    <link href='https://fonts.googleapis.com/css?family=Odor+Mean+Chey' rel='stylesheet'>
  </head>
  <body style="font:14px/1.5 'Odor Mean Chey'">
  	<input type="button" id="btn-open" value="បង្កើត​បង្អួច" />
    <input type="button" id="btn-close" value="បិទ​បង្អួច" />
    <script>
		var myWindow = null;

      	function openWindow(){
        	myWindow = window.open("", "", "width=500, height=300, left=200");
        	myWindow.document.write("នេះ​ជា​បង្អួច​ browser ថ្មី​មួយ​ទៀត​។");
        	myWindow.document.title = "បង្អួច​ថ្មី";
     	 }

     	 function closeWindow(){
        	myWindow.close();
     	 }

      	var btnOpen = document.getElementById("btn-open");
      	btnOpen.addEventListener("click", openWindow);

     	var btnClose = document.getElementById("btn-close");
      	btnClose.addEventListener("click", closeWindow);
    </script>
  </body>
</html>

នៅ​លើ​បន្ទាត់​លេខ 13 គឺ​ជា​ការយក​វិធី​ឈ្មោះ open() នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ផ្នែក window មក​ប្រើ​ ដើម្បី​បង្កើត​បង្អួច​ browser មួយ​ថ្មី​ទៀត​។

នៅ​លើ​បន្ទាត់​លេខ 19 គឺ​ជា​ការយក​វិធី​ឈ្មោះ close() នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ផ្នែក window មក​ប្រើ ដើម្បី​បិទ​បង្អួច​ដែល​ត្រូវ​បាន​បង្កើត​ឡើង​នោះ​។

មួយវិញទៀត បើ​សិន​ជា​យើង​ចង់​ផ្លាស់​ប្តូរ​ទីតាំង​និង​ផ្លាស់​ប្តូរ​ទំហំ​របស់​បង្អួច​ណា​មួយ​នោះ យើង​ត្រូវ​ប្រើ​វិធី moveTo() និង​ឬ​វិធី resizeTo() រៀង​គ្នា​។ ពិនិត្យ​កម្មវិធី​ខាង​ក្រោម​នេះ៖
<!DOCTYPE html>
<html>
  <head>
    <link href='https://fonts.googleapis.com/css?family=Odor+Mean+Chey' rel='stylesheet'>
  </head>
  <body style="font:14px/1.5 'Odor Mean Chey'">
  	<input type="button" id="btn-open" value="បង្កើត​" />
    <input type="button" id="btn-move" value="ផ្លាស់ទី" />
    <input type="button" id="btn-resize" value="ដូរ​ទំហំ" />
    <script>
		var myWindow = null;

      	function openWindow(){
        	myWindow = window.open("", "", "width=500, height=300");
        	myWindow.document.write("នេះ​ជា​បង្អួច​ browser ថ្មី​មួយ​ទៀត​។");
        	myWindow.document.title = "បង្អួច​ថ្មី";
      	}

      	function moveWindow(){
        	myWindow.moveTo(100, 200);
      	}

      	function resizeWidow(){
        	myWindow.resizeTo(700, 500);
      	}

      	var btnOpen = document.getElementById("btn-open");
      	btnOpen.addEventListener("click", openWindow);

      	var btnMove = document.getElementById("btn-move");
      	btnMove.addEventListener("click", moveWindow);

      	var btnResize = document.getElementById("btn-resize");
      	btnResize.addEventListener("click", resizeWidow);
    </script>
  </body>
</html>

នៅ​លើ​បន្ទាត់​លេខ 20 គឺ​ជា​ការយក​វិធី window.moveTo() មក​ប្រើ ដើម្បី​ផ្លាស់​ទី​បង្អួច​ទៅ​កាន់​ចំនុច​មាន​ទីតាំង (100, 200) ។

នៅ​លើ​បន្ទាត់​លេខ 24 គឺ​ជា​ការយក​វិធី window.resizeTo() មក​ប្រើ​ដើម្បី​ផ្លាស់​ប្តូរ​ទំហំ​របស់​បង្អួច​ដែល​ត្រូវ​បាន​បង្កើត​ឡើង​៕