Javascript: Event DOM loaded by

28
Feb
0

ปกติในการแทรก Javascript ลงไปบนหน้า HTML เราจะมีรูปแบบการเรียก script ลงไปอยู่สองแบบคือ

- แบบแรก แทรกโค้ดลงไปใน tag script เลย โดย script จะถูกเรียกเมื่อ หน้านั้นถูกโหลดไปถึงบรรทัดนั้น

- แบบที่สอง เกิดขึ้นเนื่องจากแบบแรกจะมีปัญหาหากเราต้องเรียกใช้งาน Element บน HTML เช่น Div , Form ต่างๆ เนื่องจากบางส่วนอาจจะโหลดไม่เสร็จ

เราจึงต้องการแทรก Script หลังจากทุกอย่างในหน้าทำการโหลดเรียบร้อยแล้วด้วย

<body onload=”init()”>

หรือ prototype

Event.observe(window, ‘load’, init, false);

ดูเหมือนจะเรียบร้อยดี แต่แล้วก็มีปัญหาเพิ่มขึ้นมาคือ onload มันจะทำงานหลังจาก “ทุกอย่าง” ในหน้าโหลดเสร็จจริงๆ ซึ่งหมายถึงเราต้องรอโหลดรูป / css ทั้งหมดให้ครบก่อนถึงจะเริ่มใช้งาน

ทำให้เกิดปัญหาว่า เราไม่สามารถ run javascript ได้เลยถ้ารูปโหลดไม่เสร็จ ยิ่งเวปที่มี javascript เยอะ หรือเป็น Ajax ก็ยิ่งมีปัญหาหนักคือทำอะไรไม่ได้เลยจนกว่ารูปจะโหลดเสร็จหมด

วิธีการแก้ปัญหา หากใช้ Prototype Js อยู่แล้ว

document.observe(“dom:loaded”,init);

หรือถ้าไม่ได้ใช้ก็สามารถ load script มาใช้ได้ที่

http://www.brothercake.com/site/resources/scripts/domready/

Bug IE6 javascript location และการแก้ไข by

28
Jan
0

เป็นบั๊กที่เกิดเฉพาะกับ browser เจ้าปัญหาเช่นเคย คราวนี้เป็น bug เกี่ยวกับการเปลี่ยนหน้าด้วย javascript

ซึ่งปกติเราจะทำกันอย่างนี้

document.location.href = “http://www.levelup.in.th/”;

แต่ปรากฎว่ามันใช้ไม่ได้ใน IE6! หลังจากหาข้อมูลมาได้ สรุปแล้วเราต้องเพิ่ม
window.event.returnValue = false;

เข้าไปใน code ด้วย แต่คราวนี้ดันทำให้ browser

try {

document.location.href = site_url(u);

window.event.returnValue = false;

}catch(e){}

ตั้ง iframe ให้ไร้ขอบ ไร้ scroll by

28
Jan
3

Firefox และอื่นๆ

style = “border:0px;overflow:hidden;”

IE

border=0 scrolling=”no” frameborder=”0″

สรุปแล้วรวมได้ดังนี้

<iframe src=”" border=0 scrolling=”no” frameborder=”0″ style = “border:0px;overflow:hidden;”></iframe>

Timer (setTimeout) ใน Javascript by

28
Jan
2

ฝากไว้เล็กๆเกียวกับ Javascript

ว่าด้วยเรื่อง function เกี่ยวกับการสั่ง function แต่ไม่สั่งทันทีต่ให้มิ้งเวลาไปอีกพักก่อนจะเริ่มทำงาน ซึ่งมีประโยชน์ในการทำ animation และ การหน่วงจังหวะ

ตัวอย่าง โค้ด

var timer1 =setTimeout(function() { alert(“Test”); }, 1000);

var timer1 =setTimeout(run, 1000);

var timer1 =setTimeout(“alert(’1′)”, 1000);

parameter แรกจะใส่้ได้สองแบบ คือเป็น string ภาษา javascript และอีกแบบจะใส่ function ลงไปตรงๆ

ส่วน parameter ที่สองจะเป็นเรื่องเวลาที่จะให้หน่วงไว้ก่อนจะเริ่มทำงาน โดยหน่วยจะเป็น 1/1000 วินาที (1000 คือ 1 วินาที)

ส่วนหากจะยกเลิกการทำงานที่สั่งไว้กับ setTimeout ข้างต้น ทำได้ด้วย

clearTimeout(timer1)

ผ่านทาง H ow to cancel/kill window.setTimeout before it happens on the client? – Stack Overflow.

ทำให้ As3 และ Javascript คุยกันได้ by

28
Dec
1

เรียก Function AS3 ด้วย Javascript

http://blog.code-head.com/calling-a-javascript-function-from-actionscript-3-flash

ง่ายมากมายด้วย ExternalInterface

import flash.external.ExternalInterface;
...
ExternalInterface.call("your_javascript_function()");

จะเอาค่า Return ก็ได้


var x:int = ExternalInterface.call("get_x()");

ส่ง Parameter กะได้ :-D

var retval:int = ExternalInterface.call("some_js_function", "the-argument");

เรียก Function AS3 ด้วย Javascript

http://codingforums.com/showthread.php?t=152181

Javascript

			// Provides the proper address for the movie depending on browser
			function getFlashMovie(movieName) {
			  	var isIE = navigator.appName.indexOf("Microsoft") != -1;
			  	return (isIE) ? window[movieName] : document[movieName];
			}

			function playMovie() { 
				getFlashMovie("video").JStoASviaExternalInterface("start");
			}

Action Script

function getTextFromJavaScript(str:String):Void {
		if (str = "start") {
startVideo();
}
}
ExternalInterface.addCallback("JStoASviaExternalInterface", this, getTextFromJavaScript);
 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน