หางาน | สมัครงาน | งานราชการ | งาน Part-Time | งาน | สมัคงาน | รับสมัครงาน | ตำแหน่งงานว่าง | งานกรุงเทพ | งานเชียงใหม่ | งานชลบุรี | งานภูเก็ต | งานภาคกลาง | งานภาคเหนือ | งานภาคใต้ | งานภาคตะวันออก | งานภาคตะวันออกเฉียงเหนือ JobTH.com

หมวดข่าวหลัก
 การเมือง
 เศรษฐกิจ
 หุ้นและการลงทุน
 เทคโนโลยี
 การศึกษา
 กีฬา
 บันเทิง
เหลียวมองรอบตัว
 สังคม
 ภูมิภาค
 LifeStyle
 ท่องเที่ยว
 ยานยนต์
 เกมส์
 ภาพยนต์
บอกเล่าเก้าสิบ
 บทความ
 ข่าวประกาศ
 เบ็ดเตล็ด

กรุงเทพธุรกิจ |  ข่าวสด |  มติชน |
เดลินิวส์ |  ไทยโพสต์ |  ผู้จัดการ |
siamsport |  thaisnews |
กรมประชาสัมพันธ์ |
กระปุกดอทคอม
Search

ค้นหาคำว่า :  ย้อนหลัง 1 เดือน  ทั้งหมด


FAQ : Frequently Asked Questions

การใช้ JavaScript ใน Internet Explorer ฝ่าย Client ในการเรียกและแสดงข้อมูลข่าวไทยสาร

Overview

ใช้ Technique คล้าย ASP Code ตัวอย่าง โดยมีการเรียก ActiveX Object MSXML ที่ฝั่ง Client เพื่อทำการการ Parse เอกสาร การเข้าถึงข้อมูลในเอกสาร และการแปลงเอกสารด้วย XSL Template

Requirements

Browser ที่ฝั่ง client จะต้อง support - JavaScript, ActiveX Control และ MSXML Object Version 3.0 ขึ้นไป

เฉพาะ Internet Explorer version 6.0 ขึ้นไปเท่านั้นที่จะ support features เหล่านี้โดยไม่ต้องลง components เพิ่มเติม แต่จากสถิติที่ผู้ใช้ Internet (โดย truehits.net) เราพบว่ามีผู้ใช้ IE version 6 ขึ้นไปเพียง 10% เท่านั้น ดังนั้นถ้าท่านต้องการแน่ใจว่าข่าวบนเว็บไซต์สามารถแสดงได้ ก็ควรจะทำการแปลงรูปแบบข่าวที่ฝั่ง Server

ตัวอย่าง Code JavaScript ข้างล่างจึงเหมาะสำหรับผู้ที่ต้องการนำเสนอข่าวของไทยสาร แต่ไม่สามารถที่จะ run code บน server ได้ (เช่นในกรณีที่ใช้ web hosting ที่มีการป้องกันการใช้ code php หรือ asp เอาไว้) หรือกรณีที่ท่านไม่สามารถใช้ feature บางอย่างได้ (เช่น php module บน webserver ไม่ support การใช้ XML Parser หรือไม่สามารถ Install MSXML หรือ URLFetch Object ลงบน IIS Server ได้)

หมายเหตุ

ข่าวที่แสดงอยู่ในหน้านี้ใช้ Code ที่ให้เป็นตัวอย่างในการเสนอ ท่านสามารถ click เพื่อ view source ของหน้านี้เพื่อดูตัวอย่างการวาง JavaScript ถ้าในกรณีที่ไม่มีข่าวแสดงในหน้านี้ ก็จะมี Error พร้อมเหตุผลที่ไม่สามารถแสดงข่าวบน Browser นี้แทน

คำเตือน ผลการทดลองใช้ code ในหน้านี้กับหน้าเว็บบนโดเมนอื่นพบว่า code ดังกล่าวไม่สามารถทำงานได้ เนื่องจาก Default Setting ของ Internet Explorer มีการป้องกันการดึงข้อมูลจากโดเมนอื่นอยู่ จำเป็นที่จะต้องมีการ set เป็น promt หรือ enable (เข้าไปที่ Tools -> Internet Options -> Security -> Custom Level -> Miscellaneous -> Access data sources across domains) ขณะนี้ทางผู้จัดทำยังไม่สามารถทำให้ Internet Explorer อนุญาติการดึงข้อมูลจากไทยสารโดยอัตโนมัติได้

ตัวอย่าง JavaScript Code

Function ข้างล่างจะทำการเรียกข้อมูลข่าวจาก URL ที่กำหนดโดย newsLocation และทำการแปลงข่าวนั้นจาก XML ให้เป็น HTML เพื่อให้สามารถแสดงบน web browser ได้ โดยการแปลงเอกสารดังกล่าวจะใช้ XSL Template ที่อยู่ที่ xslLocation (สามารถอยู่ใน local disk ของ server ได้) Code ของ Function นี้ ควรจะอยู่ระหว่าง <HEAD> และ </HEAD> ใน ASP Code ของหน้าที่จะแสดงข่าว

	
<script language="javascript">
function getMSXMLVersion() {
	var xml = "<?xml version='1.0' encoding='UTF-16'?><cjb></cjb>";

	var x = null;
var versions = new Array("Msxml2.DOMDocument.4.0", "Msxml2.DOMDocument.3.0", 
"Msxml2.DOMDocument", "Msxml.DOMDocument");
    for (i = 0; i < versions.length; i++) {
	    try {
		    objectName = versions[i];
	        x = new ActiveXObject(objectName);
	        x.loadXML(xml);
	        return objectName;
	    } catch(e) {

	    }
    };

    return "Not supported";
}

var MSXMLVersion = getMSXMLVersion();

function checkValidVersion() {
	switch(MSXMLVersion) {
		case "Not supported":
		return false;
		case "Msxml.DOMDocument":
		return false;
	    default:
	    return true;
    }
}

function showNews(newsLocation, xslLocation) 
{
	if (checkValidVersion()) 
	{
		var xmlNews = new ActiveXObject(MSXMLVersion);
		var xslNews = new ActiveXObject(MSXMLVersion);

		// Load news
        xmlNews.async = false;
        xmlNews.load(newsLocation);

        // Load the XSL
        xslNews.async = false;
        xslNews.load(xslLocation);

        // Transform
        return xmlNews.transformNode(xslNews);
    } 
	else 
	{
	    if (MSXMLVersion != "Not supported") 
		{
		    return "This browser does not support .";
	    } 
		else 
		{
	        return "This browser only support older version .";
        }
    }
}
</script>

	

เมื่อต้องการแสดงข่าวก็ทำการเรียก Function ดังกล่าว เช่น

<script language = "javascript">
document.write(showNews("http://thaisarn.com/services/distributor/xml_distributor.php?category=รัฐบาล& nlatest=7","http://www.thaisarn.com/xsl/news.xsl"));
</script>

ผลจากการ execute code ขั้นต้นเป็นดังนี้

การใช้ <object> เพื่อให้ Client Browser ทำการ Download MSXML Object

ในกรณีที่ Browser ท่านได้ disable JavaScript, ActiveX Control หรือไม่ได้ติดตั้ง MSXML เอาไว้ก็จะไม่สามารถดูข่าวได้ แต่จะแสดง error ขึ้นมาแทน) โดย Error ที่ Code ขั้นต้นสามารถดักได้ ได้แก่

  • Error ที่แสดงว่า client browser ไม่ support ActiveX Control หรือ MSXML Class; และ
  • Error ที่แสดงว่า client browser ใช้ MSXML Class Version เก่ากว่า 3.0

ในกรณีที่ Client Browser (ซึ่งเป็น IE ที่ run บนระบบปฏิบัติการ windows) support ActiveX Control แต่ไม่มี MSXML Object ลงไว้ การแทรก code ข้างล่างนี้ไว้สามารถทำให้ browser ทำการ load MSXML (จาก thaisarn.com ในกรณีนี้) โดยอัตโนมัติ เพื่อให้ code JavaScript ขั้นต้นทำงานได้

	
<object id="MSXML3" classid="clsid:f5078f32-c551-11d3-89b9-0000f81fe221" 
	codebase="http://thaisarn.com/classes/msxml3.cab#version=8,00,7820,0" 
	type="application/x-oleobject" 
	STYLE="display: none">
</object>

	

Code ขั้นต้นสามารถทำงานได้กับ IE version ตั้งแต่ 4.0 ขึ้นไป โดยที่ file ที่ต้องทำการ download มา (msxml3.cab) มีขนาดประมาณ 500 KB

ตัวอย่าง XSL Template

เช่นเดียวกับ ASP Code ตัวอย่าง ท่านสามารถกำหนดการแปลงเอกสารด้วย XSL Template ได้โดยการเปลี่ยน parameter ตัวที่สองของ function showNews ให้เป็นตำแหน่งของ XSL Template ที่ต้องการดูลงของการใช้ XSL Template อื่นข้างล่าง

ใช้ XSL Template marquee.xsl ผลที่ได้เป็นดังนี้

ใช้ XSL Template selectbox.xsl ผลที่ได้เป็นดังนี้

Bug Reports and Feature Requests

ติดต่อได้ที่ E-Mail : ThaiSarn.com Web Master



Event Calendar

 FAQ
ไทยสาร คือ ?
XML คือ ?
RSS คือ ?
เป้าหมายการบริการ
ประโยชน์ที่พึงได้
สถานะปัจจุบัน
เงื่อนไขการบริการ
 ส่งข่าวเข้าไทยสาร
สร้างข่าวในรูป XML
ส่งข่าวเข้าไทยสาร
 ดึงข่าวขึ้นเว็บท่าน
คำแนะนำ
นำข่าวติดหน้าเว็บผ่าน RSS
ตัวอย่าง PHP code
ตัวอย่าง JScript
 ดึงข่าว( ติดตั้งง่าย )
วิธีแสดงข่าวแบบต่างๆ

Settrade.com : SET Index