![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_oYmKu-plwjk1V-Ydiam7OXrp4u8zrPFOtcUpHd-gwI6wx5PbLk4_K9jSyl88w_BoaHdH_hHGaA7vES_3jwo3eN0NjSg6z6KIsyQl6fwJZ-Z3zols-1tN3eSdbptCInCyYpY6b6nZM-4/s320/03-extjs-sandbox-01.png)
กดปุ่มเครื่องมือ รูปคีมที่มุมขวาบนกันเลย เลือก Options
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSoFpDlncmHEbaGpEy9Zjkyu38ixIAW4W-xxmJlufYbjEAeVffkyn9AoH4yHyAPQ1vkJbJJOfBuZJHwlXo5EnqQhA-fsOK2OJGiUOot5Dmg_ElL2YeHj7pX3ytlNgJKFvyxcH1UXZuVvA/s320/03-extjs-sandbox-02.png)
เลือก Get themes ตรงหัวข้อ Themes ภายใต้ tab [Personal Stuff] รอสักครู่ Chrome จะไปที่ Web แสดงหน้าตาต่างๆ ที่สามารถจะ [Apply theme] ได้
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNxBLuO3rgI_3QDY7QJXuSBqONpu-zVGItr3ePNyJClCey0VXQIxoAEyDeSIKj38V9-hwIZB-qHF1f9ge-077KQ7hT0DI3SM3JWC06q5njVN30tc6t3Dehqmgq5xz8Ol21NdHpyqPQLDo/s320/03-extjs-sandbox-03.png)
เลือกหน้าตาที่เราพอใจแล้วกดปุ่ม [Apply theme] รอสักครู่ Chrome จะทำการติดตั้ง Theme ใหม่ให้เราเสร็จเรียบร้อย รวดเร็ว ทันใจวัยรุ่น
คราวนี้เข้าเรื่องได้แล้วคับ ความเดิมต่อจาก 2 ตอนที่แล้ว เราได้ลองทำงานกับ extjs-test ภายใต้ path C:\extjs-text แต่การจะปรับแต่ง แก้ไข component ต่างๆของ Ext JS ต้องผ่านขั้นตอนการแก้ไข code -> save file -> แล้วถึงจะไป refresh ที่ Chrome ถึงจะเห็นการเปลี่ยนแปลง แม้แต่จะลองเปลี่ยนขนาดของ Object แค่นิดเดียว ก็ต้องทำตามขั้นตอนที่กล่าวมาทั้งหมดใหม่
พออ่านเจอ code ของ คุณ cmcculloh ตาม Link ท้ายบทความ ก็เกิด idea ของเราขึ้นมาทันที ใช้สุดยอด วิชา C&D เอา code ของเขามาดัดแปลง เอ่อ develop กลายมาเป็น javascript ที่เอามาแทรกใน template แรกๆของเรา ได้หน้าตาใหม่แบบนี้คับ ตั้งชื่อให้ว่า extjs-sandbox.html
File extjs-sandbox.html
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ExtJS Sandbox</title>
<link rel="stylesheet" type="text/css" href="/ext/resources/css/ext-all.css" />
<script type="text/javascript" src="/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/ext/ext-all-debug.js"></script>
<script>
function clearObject()
{
if (Ext.getCmp('idx'))
{
Ext.getCmp('idx').destroy();
}
}
</script>
</head>
<body>
<div id="jsConsole" style="bottom:0px;right:0px;position:fixed; z-index: 99;">
<input id="jsClearObject" type="button" value="Clear" style="float: right; display: inline; " onclick="clearObject()">
<input id="jsConsoleShowConsoleButton" type="button" value="show console" style="float: right; display: none; "
onclick="document.getElementById('jsCode').style.display='block';document.getElementById('jsConsoleShowConsoleButton').style.display='none';document.getElementById('jsConsoleHideConsoleButton').style.display='inline';">
<input id="jsConsoleHideConsoleButton" type="button" value="hide console" style="float: right; display: inline; " onclick="document.getElementById('jsCode').style.display='none';document.getElementById('jsConsoleHideConsoleButton').style.display='none';document.getElementById('jsConsoleShowConsoleButton').style.display='inline';">
<input type="button" value="execute JS" style="float:right;" onclick="eval(document.getElementById('jsCode').value);"><br>
<textarea id="jsCode" rows="25" cols="50" style="float: right; clear: right; display: block;background-color:#FFFFCC "></textarea>
</html>
หลังจากตัดต่อพันธุกรรมแล้ว ก็ได้ code GMO ตามข้างบน โดยขอแทรกในส่วนที่เป็นสีแดง เพื่อให้เกิดความคล่องตัวในการเล่นกระบะทราย หรือ sandbox โดยมีกติกาว่า object ต่างๆของ Ext JS ที่เราจะตัดตอนมา ลอง เล่น เรียน รู้ จะต้องระบุ config id: 'idx' ไว้เสมอนะคับ เพื่อจะได้ลบทิ้งได้ง่ายๆด้วยปุ่ม [Clear] เพราะอาศัยหลัก การของ Ext JS ว่าสามารถเข้าถึง DOM (Document Object Model) ด้วย Ext.getCmp('idx') เพราะฉนั้น ถ้า object ที่เราจะเอามาเล่น มี id เป็น idx ทุกๆอัน (แต่ต้องเล่นทีละอันเท่านั้นนะคับ) เราก็จะลบทิ้งได้ง่ายๆ ด้วย function clearObject ตาม code นี้ไงคับ
Ext.getCmp('idx').destroy();
วิธีการใช้งานก็ไม่สลับซับซ้อนอะไร หลังจาก save file extjs-sandbox.html ไปไว้ที่เดิมของเราคือ C:\extjs-test เราก็ใช้ Chrome เปิดขึ้นมาได้เลยคับ ลืมไปหรือยังคับ Ctrl+O
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtpDuGgiEQZST0nG6WVT8w-2LLr-RkZ-vF178vWwpx9LlCQEBkCrloGLTsUs45v5uDA_ZU5AtoCoH6aZYWWrKXKzktPweEXiH25et1yMsMugrywUsBZ5WZG9WGJJzRfyKuaxPU37Swdjg/s400/03-extjs-sandbox-04.png)
จะได้พื้นที่ทำงานหน้าตาคล้ายๆรูปด้านซ้ายมือนะคับ พื้นที่สีเหลืองเอาไว้ COPY&PASTE ใส่ code Ext JS ที่เราสนใจ
อย่าลืมระบุ id ให้เป็น idx ด้วยทุกครั้งนะคับ จะได้ใช้งานได้สะดวก ลบทิ้ง วาดใหม่ แก้ code ลองใหม่ได้เรื่อยๆ
ยกตัวอย่างเรื่อง viewport จากบทที่ 2 เราไป copy code snippet ย่อยส่วนที่เป็นการสร้าง viewport มาได้ตามนี้
if (Ext.getCmp('idx')){Ext.getCmp('idx').destroy();}
var viewport = new Ext.Viewport({
layout: "border"
,id: "idx"
,renderTo: Ext.getBody()
,items: [{
region: "north"
,xtype: "panel"
,html: "North"
},{
region: "west"
,xtype: "panel"
,width: 100
,html: "West"
},{
region: "center"
,xtype: "panel"
,html: "Center"
},{
region: "east"
,xtype: "panel"
,width: 100
,html: "East"
},{
region: "south"
,xtype: "panel"
,html: "South"
}]
});
เราแค่แทรก 2 บรรทัดที่ hilight ด้วยสีแดงเท่านั้นเองคับ เป็นอันเสร็จกระบวนการ เราเอา code ย่อย (snippet) นี้ไป paste ลงในพื้นที่สีเหลืองของพันธมิตร เอ้ย.. ของ Chrome ได้แล้วคับ กดปุ่ม [execute JS] จะได้ viewport ขึ้นมาแสดงในจอเดียวกัน
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVcoP4NvmdcBBbduCxMehpnzi8AlkfIa3l06i8L5LrZTzjtw9GzLtulCKPNQoluW7ZEDfBzi25iLPMrZ15sM9L5Gv0tcrBRM6PZoMb9WNVz-hGgJ6h5cX-GeucOnKF2Ir5tZDJhblHTJk/s400/03-extjs-sandbox-05.png)
จากนั้นลองกดปุ่ม [hide console] เพื่อดูหน้าจอเต็มๆ ไม่มีสีเหลืองมากวน ปุ่มบังคับจะเลื่อนไปอยู่ที่มุมขวาล่าง
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_ditTl8kdLSp2bf8IJGfedLZ8QmgJUkZaMxBleNvnjie31CX_UvIBxAg02jt2yuCPsn5vu9QmiHl2o_RJ402rPZWbsOVQMaL71Uu7gK0xiVAV4S5vU25hbVX8PWGHMSUpL7jD80g0ejc/s400/03-extjs-sandbox-06.png)
กดปุ่ม [Clear] สลับกับปุ่ม [execute JS] เพื่อลบ object ทิ้งไป และให้สร้าง object ขึ้นมาใหม่
คราวนี้เราจะมาลอง ดัดแปลง Ext JS code snippet กันละ โดยทำคล้ายๆกับบทที่ 2 คือตัด region east กับ south ออก ขยาย west ให้เป็น 200 เราทำได้ทันทีในพื้นที่สีเหลือง แก้ไขเสร็จแล้วกดปุม [execute JS] เพื่อดูผลการ แก้ไขได้แบบรวดเร็ว สะจายยย ทำให้การเรียนรู้ Ext JS น่าสนใจขึ้นมากมาย เห็นด้วยไหมคับ
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghUATYZLWs-2Uyvads6260uEv_8npRIv-lrxTPDZkdWq9x1EGM-pXaSsb4-wDvIUvi3EWBrAXharMVDOJnjGuAjUqO0utLGYSq3iN7RnQQ2S4LX1HP-GlbiLTxfViOYl1wUse_NF5quHg/s400/03-extjs-sandbox-07.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGYMzTNN9oY_NrJEsPrBMRANPjG8zrVrNMxBlwehYoX6EeGWbcGeQXHsV_E_cQBBq0LZIMAJjRJM9wgP0fzRBEZbJS5Kkx_fROyl_M50Li61CCjmF88EziLWcTaY4PDmHp5cPUHyLPglw/s400/03-extjs-sandbox-08.png)
Reference:
https://chrome.google.com/extensions/detail/ohpmcainjdkbnkmkfmfbadfljaogedna
by cmcculloh
ขอขอบคุณในการให้แนวทางการสร้าง sandbox แบบง่ายๆนี้ขึ้นมาคับ ตอน search google ก็หวังจะได้แค่ Javascript Console แบบ multiline สำหรับ Chrome เท่านั้น กลับได้กำไรหลายเท่าตัว ขุมทรัพย์รอเราอยู่ใน Internet เสมอแหละคับ รอเวลาให้เราไปขุดหากันเอง
จบบทความที่ 3 สั้นๆแค่นี้ก่อนนะคับ ขอเวลาไปดีจัยก่อน หุหุ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น