Details in English, here.
ตอนนี้พอใจดีทุกอย่างกับ Firefox
ติดแค่อย่างเดียว คือเรื่องตัดคำข้อความภาษาไทยที่มันทำไม่ได้
ทำให้เวลาอ่านหน้าเว็บบางหน้า ที่เค้่าเขียนข้อความยาวติดกันเป็นพืด จะอ่านลำบาก
เพราะต้องเลื่อนซ้ายทีขวาที และไม่สวยด้วย
ถึงแม้จะมี ICU patch สำหรับ Firefox ให้มันตัดคำไทยได้แล้ว
แต่ก็คงยุ่งยากไปสำหรับผู้ใช้ทั่วไป (จริงๆ ถ้าอยากลอง ก็ไม่ยากนะ ทำตามสเต็ปดูได้)
คนใช้ Linux TLE โชคดีหน่อย
Firefox/Thunderbird/Mozilla ที่จะมากับ Linux TLE ตัวหน้า จะแพตช์มาเรียบร้อยแล้ว
อย่างไรก็ตาม ทั้งหมดนั้นยังสำหรับ Linux เท่านั้น, Windows อด
เห็นว่า bookmarklet น่าจะเป็นวิธีนึงที่ใช้(แก้ขัด)ได้
เพราะว่ามันน่าจะใช้ได้ทุกแพลตฟอร์ม/เบราเซอร์ (เป็น JavaScript) ไม่ต้องแพตช์ ไม่ต้องคอมไพล์
น่าจะโอเคสำหรับผู้ใช้ทั่วๆ ไป เลยลองทำดู
เท่าที่ใช้ดู ก็โอเค พออ่านได้ ไม่ต้องเลื่อนซ้ายขวามากนัก
แต่มันไม่อัตโนมัตินะ ต้องกดปุ่ม bookmarklet เพื่อสั่งให้มัน wrap เอาเอง
โค้ดก็ไม่มีอะไรมาก ก็แค่แทรก <WBR> ไปตามจุดที่เห็นว่าน่าจะแบ่งพยางค์ได้แค่นั้นแหละ
ใช้ JavaScript แทรกโค้ดผ่าน DOM
เป็น regexp + รายการคำประมาณสิบกว่าคำที่มักจะพบกลางประโยค (เช่น “เป็น|อยู่|ก็|ที่|จะ”)
Note: ไม่ได้แทรกทุกๆ จุดแบ่งจริงๆ แค่บางจุดที่พอจะหาได้เท่านั้น
แค่ให้มันตัดประโยคยาวๆ ลงได้บ้างก็พอ จะได้อ่านเว็บง่ายหน่อย
รายละเีอียด ลองดูตามลิงก์ + ในโค้ดเอาละกัน
โค้ดยังช้าอยู่ และยังใช้กับหน้าที่อยู่ใน frame ไม่ได้
ทดสอบ + อ่านรายละเอียดที่เหลือ (ภาษาอังกฤษ)
ถ้าใครอยากเอาไปทำอะไรต่อ (เช่นให้มันเร็วขึ้น หรือว่าใช้กับ frame ได้) ก็ตามสบายเลยครับ
Update: แก้โค้ดใหม่ ปรับ regexp ตัวที่ 3 กับ 4 นิดหน่อย
Update: ใช้กับเฟรมได้แล้ว (แต่ถ้าเฟรมซ้อนๆ กันนี่ไม่น่าจะได้นะ)
8 responses to “ThaiWrap bookmarklet”
ชอบมากๆ :)ทำเป็น extension ให้รันเองนี่จะเป็นไปได้รึเปล่า?ไม่งั้นเราอาจจะลองดึง javascript ออกมาแล้วเรียกใช้ด้วย body onload="" คนดูจะได้เห็นทุกคน มันทำได้มั๊ยอ่ะ?chris
ใช้เป็น onload ก็น่าจะได้นะเรื่องทำ extension นี่ทำไม่เป็น 😛
T_T ใช้กับ Opera ไม่ได้Oakyman
มันว่ายังไงบ้างครับ?
ไม่ว่ายังไงเลยครับเหมือนไม่มีอะไรเกิดขึ้นอ้อๆ เพิ่งเปิด JavaScript Console มาดูครับนี่ครับ (ยาวหน่อยนะครับ)Javascript URL thread: "javascript:thaiWrap();"Error:name: SyntaxErrormessage: Statement on line 44: RegExp.prototype.compile: syntax error in pattern or stringBacktrace: Line 44 of inline#1 script in <a href="http://siit.net/members/art/thaiwrap.htmlhttp://siit.net/members/art/thaiwrap.html<br /> r[6] = RegExp("([u0e30u0e32-u0e3a])(?=.([u0e30-u0e3ax00e47u0e4e]))"); Line 1 of unknown script thaiWrap();
ผมเอาลองเอาโค้ดไปใช้ในบล็อก, ทำเป็นลิงค์ไว้ครับ. ขอบคุณครับ.
เอาเลยครับ / ขอบคุณครับ
มีคนเอาไปทำเป็น User JavaScript ของ Opera แล้วนะครับตามลิงก์ที่ThaiWrap bookmarkletรอคนเอาไปทำเป็น greasemonkey อยู่ 😛