Friday, June 8, 2012

Spoiler Kode Seperti Yang Terdapat pada Spoiler Wikipedia?

Mengenai cara membuat spoiler seperti yang terdapat pada Wikipedia. Untuk menjalankannya copy dan pastekan kode di bawah ini, selanjutnya gantilah Spoiler Title: dan Text Spoiler.
<div style="padding: 10px; border:1px solid #ccc;background:#f9f9f9"><div style="margin-bottom: 0px;font-family: arial;font-size:12px;"><b>Spoiler Title:</b><input value="Show" style="border:0px solid #000;margin:0px;color:#0000FF;font-family: arial; font-size: 12px; height:16; background:#f9f9f9" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = 'Hide'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Show'; }" type="button"> </div><div style="margin: 0 10px 0px 10px; padding: 0px; border: 0px inset #fff;"><div style='display:none'><br/>Text Spoiler</div></div></div>
Demo spoiler code ala Wikipedia:
Enhanced Pair-Bi:
'simpan kode di bawah pada Form 
Option Explicit 
'buatlah satu project dengan 1 Form, 1 CommandButton, 1 TextBox 
Private Sub Command1_Click() 
    Dim g As String 
    Dim i As Integer 
    Dim s() As String 
    Dim x As String 
    g = Text1.Text 
    g = RemoveEndCrlf(g) 
    If Trim(g) = "" Then Exit Sub 
    If InStr(1, g, "<b></b>") > 0 Then 
        g = Replace(g, "<b></b>", "") 
        Text1.Text = RemoveEndCrlf(g) 
        Exit Sub 
    Else 
        s = Split(g, vbCrLf) 
        For i = 0 To UBound(s) 
            x = x & "<b></b>" & s(i) & vbCrLf 
        Next 
    End If 
    Text1.Text = RemoveEndCrlf(x) 
End Sub 
 
'fungsi di bawah digunakan untuk menghilangkan karakter CRLF 
'yang terdapat pada akhir kode 
Private Function RemoveEndCrlf(s As String) 
    Dim str As String 
    str = s 
    If Right(str, 2) = vbCrLf Then 
        Do While Right(str, 2) = vbCrLf 
            str = Left(str, Len(str) - 2) 
        Loop 
    End If 
    RemoveEndCrlf = str 
End Function 
Selain menggunakan untuk text spoiler juga bisa digunakan untuk menampilkan dan menyembunyikan gambar.

Catatan Penting: kode-kode HTML/XML yang akan dijalankan (bukan tulisan [ seperti kode spoiler di atas]) harus dibuat satu baris, mengapa demikian?