How :javascript call print preview

I found the script from jguru to call print preview from javascript.
I dont know whats the limitations, but its works perfectly as I expected.

Here is the script :
<html>
<head>
<title>Print Preview</title>
<script>
function printpr()
{
var OLECMDID = 7;
/* OLECMDID values:
* 6 – print
* 7 – print preview
* 1 – open window
* 4 – Save As
*/

var PROMPT = 1; // 2 DONTPROMPTUSER
var WebBrowser = ‘<OBJECT ID=”WebBrowser1″ WIDTH=0 HEIGHT=0 CLASSID=”CLSID:8856F961-340A-11D0-A96B-00C04FD705A2″></OBJECT>’;
document.body.insertAdjacentHTML(‘beforeEnd’, WebBrowser);

WebBrowser1.ExecWB(OLECMDID, PROMPT);
WebBrowser1.outerHTML = “”;
}
</script>
</head>
<body>
<form>
<input type=’button’ value=”Print Preview” onclick=”printpr();”>
</form>
</body>
</html>

Thanks in advance Ravi Verelly for the script.

Masalah Readonly pada field Checkbox

Dalam sebuah form html kadang kita membutuhkan sebuah field bersifat readonly artinya sebuah filed hanya bisa dibaca saja tidak boleh dilakukan perubahan terhadap nilai yang dibawanya. Jika field yang dimaksud adalah button, textfield atau textarea tidak akan jadi masalah karena kita cukup memasukkan attribute readonly=readonly atau cukup readonly kedalam tag input nya, seperti <input type=text readonly=readonly>.

Masalah akan muncul apabila field yang digunakan bertipe checkbox, karena tipe ini tidak mendukung atribute readonly. Sedangkan apabila kita menggunakan atribute disabled secara GUI memang tidak masalah tetapi tetap akan menjadi masalah ketika data itu harus disimpan lagi karena atribute disabled akan membuat data bernilai null (null <> 0).

Salah satu solusinya adalah menggunakan javascript dalam tag input, seperti dibawah ini :

<input type=”checkbox” name=”p_nama” onclick=”javascript:if(this.checked==true)
{
this.checked=false;
}else{
this.checked=true
}”>

atribute checked tinggal disesuaikan dengan isi data yang disimpan. Artinya apabila data bernilai true maka scriptnya akan menjadi :

<input type=”checkbox” name=”p_nama” onclick=”javascript:if(this.checked==true)
{
this.checked=false;
}
else{
this.checked=true
}” checked>

~hk