วิกิพีเดีย:สคริปต์ผู้ใช้

สคริปต์ผู้ใช้ (user scripts) เป็นโค้ดภาษาจาวาสคริปต์ ที่ใช้ในการตกแต่ง เปลี่ยนแปลง หรือเพิ่มเติมความสามารถ รูปแบบวิกิพีเดียสำหรับผู้ใช้ดังกล่าว โดยปกติจะใส่ในหน้า monobook.js ของผู้ใช้ ซึ่งความสามารถส่วนนี้สำหรับผู้ที่เป็นสมาชิกวิกิพีเดียเท่านั้น.

เนื้อหา

[แก้] การใส่สคริปต์ผู้ใช้

โดยให้ใส่โค้ดจาวาสคริปต์ที่ต้องการที่หน้า:

ผู้ใช้:ชื่อผู้ใช้/monobook.js

โดยเปลี่ยนคำว่า "ชื่อผู้ใช้" เป็นชื่อผู้ใช้ของคุณเอง ไปหน้า Monobook.js ของคุณ

[แก้] ตัวอย่างความสามารถเพิ่มเมนูด้านบน

ตัวอย่างความสามารถที่นิยมคือ การเพิ่มเมนูด้านบน เหมือนดังรูปแสดง (หรืออาจจะเพิ่มด้านซ้ายมือ) วิธีใช้โดยการนำฟังก์ชันของจาวาสคริปต์ ไปใส่ไว้ในหน้าผู้ใช้

ตัวอย่างการใช้งานสคริปต์ผู้ใช้
ตัวอย่างการใช้งานสคริปต์ผู้ใช้


[แก้] ตัวอย่างสคริปต์ จากผู้ใช้งานคนอื่น


[แก้] สคริปต์จัดให้

ดูบทความหลักที่สคริปต์ผู้ใช้จัดให้

สคริปต์จัดให้ เป็นรูปแบบสคริปต์ผู้ใช้ที่ผู้ใช้สามารถสมัครใช้สคริปต์ที่จัดมาให้แล้ว โดยเจ้าของสคริปต์สามารถอัปเดตปรับปรุงรุ่นใหม่ได้ โดยผู้สมัครไม่จำเป็นที่จะต้องคัดลอกโค้ดใหม่ เพียงแค่รีเฟรชแคชหน้า monobook.js ของตัวเองก็จะได้รับรุ่นใหม่ ปัจจุบันนี้สคริปต์จัดให้ได้มีแบบรวมเข้าชุดสำหรับหน่วยเก็บกวาดเฉพาะกิจ โดยได้รวมความสามารถหลักไว้ที่เดียว ทำให้สะดวกในการติดตั้งและบริหารจัดการ


[แก้] สคริปต์ ที่นำไปใช้ได้

สคริปต์จะแบ่งเป็น 2 แบบ คือ สคริปต์เครื่องมือ กับสคริปต์เฉพาะทาง โดยการใช้งานของสคริปต์เฉพาะทางอาจ จำเป็น ที่จะต้องใช้ สคริปต์ เครื่องมือตัวใดตัวหนึ่ง ในการช่วยแสดงผล โดยวิธีการนำไปใช้ สามารถเลือกสคริปต์ที่ต้ัองการไปใส่ไว้ในหน้าสคริปต์ ของตัวเองตามความเหมาะสม สำหรับสคริปต์ เครื่องมือ สามารถใส่ครั้งเดียว และสามารถเรียกใช้ได้มากกว่าหนึ่งครั้ง

สำคัญ: ทุกครั้งที่มีการเปลี่ยนแปลงหน้า Monobook.js ของคุณ ให้ทำการ Refresh หน้านั้นหลังจากบันทึกเพื่อเห็นการเปลี่ยนแปลง ขั้นตอนการ Refresh:

  • ใน IE กด Ctrl-F5
  • ใน Mozilla/Safari/Konqueror กด Shift ค้าง แล้วกด Reload (หรือ Ctrl-Shift-R)
  • ใน Opera กด F5

[แก้] สคริปต์เครื่องมือ

[แก้] เพิ่มแท็บด้านบน

/*  */
function addTab(url, name, id, title, key) {
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul') [0];
    addlilink(tabs, url, name, id, title, key) ;
}
/*  */

[แก้] เพิ่มเมนู เครื่องมือ ด้านซ้าย

/*  */
function addlilink(tabs, url, name, id, title, key) {
    var na = document.createElement('a') ;
    na.href = url;
    na.appendChild(document.createTextNode(name)) ;
    var li = document.createElement('li') ;
    if(id) li.id = id;
    li.appendChild(na) ;
    tabs.appendChild(li) ;
    na.accesskey = key;
    var pref = 'alt-';
    if(((clientPC.indexOf('AppleWebKit') !=-1) && (clientPC.indexOf('spoofer') ==-1)) || navigator.userAgent.toLowerCase().indexOf( 'mac' ) != -1 ) pref = 'control-';
    if(clientPC.indexOf('opera') !=-1) pref = 'shift-esc-';
    if(key && title) na.title = title + ' [' + pref + key + ']';
    else if(title) na.title = title;
    else if(key) na.title = '[' + pref + key + ']';
    return li;
}
/*  */

[แก้] อ่านชื่อของหน้านั้น

/*  */
function getPname() {
  return wgPageName.replace(/_/g, ' ') ;
}
/*  */

[แก้] สคริปต์เฉพาะทาง

[แก้] ใส่ข้อความต้องการความช่วยเหลือ

ใส่ข้อความต้องการความช่วยเหลือ ที่ส่วนบนของบทความ และทำการเซฟบทความทันที

/*  */
// ========== Quick Wikify ==========
function doQwikify() {
  document.editform.wpTextbox1.value = "{{ช่วยดูหน่อย}}\n\n" + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = "ช่วยดูหน่อย";
  document.editform.wpMinoredit.checked = true;
  document.editform.submit() ;
}

function addQwikify() {
  addTab("javascript:doQwikify() ", "ช่วย", "ca-wikify", "แจ้งว่าช่วยดูหน่อย", "") ;
  akeytt() ;
}

if (document.title.indexOf("แก้ไข ") == 0) {
  if (window.addEventListener) window.addEventListener("load", addQwikify, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addQwikify) ;
}
/*  */

[แก้] แจ้งโฆษณา

ใส่กล่องข้อความแจ้งโฆษณา ที่ส่วนบนของบทความ และทำการเซฟบทความทันที

/* </nowiki> */
// ========== แจ้งโฆษณา ==========
addOnloadHook(function() {
  //check if called from deletion request
  if(document.getElementById('ca-nstab-special')) {
    return;
  }

  if (document.title.indexOf("แก้ไข") != -1) {
    if (document.URL.lastIndexOf("&fakeaction=advert") == -1)
      return;

    document.editform.wpTextbox1.value = "{{โฆษณา}}\n\n" + document.editform.wpTextbox1.value;
    document.editform.wpSummary.value = "แจ้งโฆษณา";
    document.editform.submit() ;
    return;
  }
  addTab("javascript:doAdvert() ", "แจ้งโฆษณา", "ca-advert", "คำสั่งแจ้งโฆษณา", "") ;
}) ;
 
function doAdvert() {
  //edit page
  var title = document.title.substr(0, document.title.lastIndexOf(' - วิกิพีเดีย')) ;
  location.assign("http://th.wikipedia.org/w/index.php?title=" + title + "&action=edit&fakeaction=advert") ;
}
/* </nowiki> */

[แก้] แจ้งลบ

ใส่กล่องข้อความแจ้งลบ ที่ส่วนบนของบทความ และทำการเซฟบทความทันที

/*  */
// ========== แจ้งลบ ==========
addOnloadHook(function() {
  //check if called from deletion request
  if(document.getElementById('ca-nstab-special')) {
    return;
  }

  if (document.title.indexOf("แก้ไข") != -1) {
    if (document.URL.lastIndexOf("&fakeaction=speedydel") == -1)
      return;

    document.editform.wpTextbox1.value = "{{ลบ}}\n\n" + document.editform.wpTextbox1.value;
    document.editform.wpSummary.value = "แจ้งลบ";
    document.editform.submit() ;
    return;
  }
  addTab("javascript:doQsd() ", "แจ้งลบ", "ca-sd", "คำสั่งแจ้งลบ", "") ;
}) ;
 
function doQsd() {
  //edit page
  var title = document.title.substr(0, document.title.lastIndexOf(' - วิกิพีเดีย')) ;
  location.assign("http://th.wikipedia.org/w/index.php?title=" + title + "&action=edit&fakeaction=speedydel") ;
}
/*  */

[แก้] แจ้งละเมิดลิขสิทธิ์

ใส่กล่องข้อความแจ้งละเมิดลิขสิทธิ์พร้อมเติมวันที่ในเวลาไทยให้โดยอัตโนมัติ ที่ส่วนบนของบทความ

// ========== แจ้งละเมิดลิขสิทธิ์ (รุ่นใส่เวลาไทย) ==========
function doCopyViolation() {
  var currentDay = new Date() ;
  var thaiDate = new Date(currentDay.getTime() + 25200000) ; //7*1000*60*60
  var month = thaiDate.getUTCMonth() +1;
  var year = thaiDate.getUTCFullYear() +543;

  document.editform.wpTextbox1.value = "{{ละเมิดลิขสิทธิ์ | url=  | วันที่=" + thaiDate.getUTCDate()
 + "http://th.wikipedia.org/" + month + "http://th.wikipedia.org/" + year + " | หมายเหตุ= }}"
  document.editform.wpSummary.value = "แจ้งละเมิดลิขสิทธิ์ ";
}
function addCopyViolation() {
  addTab("javascript:doCopyViolation() ", "ละเมิด", "ca-vio", "แจ้งละเมิดลิขสิทธิ์", "") ;
  akeytt() ;
}

if (document.title.indexOf("แก้ไข ") == 0) {
  if (window.addEventListener) window.addEventListener("load", addCopyViolation, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addCopyViolation) ;
}

[แก้] เก็บกวาดนโยบายเก่า

/* </nowiki> */
// ========== เก็บกวาดนโยบายเก่า ==========
// สคริปต์นี้ เปลี่ยนคำสั่งเก่า เช่น Category, Image, และข้อความเก่า
function doCleanupTag() {
  text = document.editform.wpTextbox1.value;
  text = replace(text,'[[Category:','[[หมวดหมู่:') ;
 text = replace(text,'[[category:','[[หมวดหมู่:') ;
 text = replace(text,'[[Image:','[[ภาพ:') ;
 text = replace(text,'[[image:','[[ภาพ:') ;
 text = replace(text,'แหล่งอ้างอิง','อ้างอิง') ;
  text = replace(text,'หนังสืออ้างอิง','อ้างอิง') ;
  text = replace(text,'เอกสารอ้างอิง','อ้างอิง') ;
  text = replace(text,'แหล่งข้อมูลอ้างอิง','อ้างอิง') ;
  text = replace(text,'หัวข้ออื่นที่เกี่ยวข้อง','ดูเพิ่ม') ;
  text = replace(text,'ดูเพิ่มที่','ดูเพิ่ม') ;
  text = replace(text,'เว็บไซต์อื่น','แหล่งข้อมูลอื่น') ;
  text = replace(text,'เว็บไซต์ภายนอก','แหล่งข้อมูลอื่น') ;
  text = replace(text,'โยงภายนอก','แหล่งข้อมูลอื่น') ;
  text = replace(text,'ลิงก์ภายนอก','แหล่งข้อมูลอื่น') ;
  text = replace(text,'ลิงค์ภายนอก','แหล่งข้อมูลอื่น') ;
  text = replace(text,'Link ภายนอก','แหล่งข้อมูลอื่น') ;
  text = replace(text,'ข้อมูลภายนอก','แหล่งข้อมูลอื่น') ;

  text = replace(text,'*[','* [') ;
  document.editform.wpTextbox1.value = text;
  document.editform.wpSummary.value = "แก้ไข +เก็บกวาด";
}

function addCleanupTag() {
  addTab("javascript:doCleanupTag() ", "เก็บกวาด", "ca-taclt", "เก็บกวาด", "") ;
}

if (document.title.indexOf("แก้ไข ") == 0) {
  if (window.addEventListener) window.addEventListener("load", addCleanupTag, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addCleanupTag) ;
}
/* </nowiki> */

[แก้] สลับเปลี่ยนระหว่างตัวเลขอารบิกกับเลขไทย

/*  */
// ========== Replace string ==========
// Javascript from http://www.irt.org/script/242.htm
function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text) ;
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength) ,text,by) ;

    return newstr;
}

// ========== Thai to Arabic Numbers ==========
// This script converts all Thai numbers (๑ ๒ ๓) to Arabic numbers (1 2 3)
function doConvertNumber() {
  text = document.editform.wpTextbox1.value;
  text = replace(text,'๑','1') ;
  text = replace(text,'๒','2') ;
  text = replace(text,'๓','3') ;
  text = replace(text,'๔','4') ;
  text = replace(text,'๕','5') ;
  text = replace(text,'๖','6') ;
  text = replace(text,'๗','7') ;
  text = replace(text,'๘','8') ;
  text = replace(text,'๙','9') ;
  text = replace(text,'๐','0') ;
  document.editform.wpTextbox1.value = text;
  document.editform.wpSummary.value = "เปลี่ยนเลขไทยเป็นอารบิก";
}

function addConvertNumber() {
  addTab("javascript:doConvertNumber() ", "๒ ->2", "ca-tanum", "เปลี่ยนเลขไทยเป็นอารบิก", "") ;
  akeytt() ;
}

if (document.title.indexOf("แก้ไข ") == 0) {
  if (window.addEventListener) window.addEventListener("load", addConvertNumber, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addConvertNumber) ;
}

// ========== Arabic to Thai Numbers ==========
// This script converts all Arabic numbers (1 2 3) to Thai numbers (๑ ๒ ๓)
function doConvertToThaiNumber() {
  text = document.editform.wpTextbox1.value;
  text = replace(text,'1','๑') ;
  text = replace(text,'2','๒') ;
  text = replace(text,'3','๓') ;
  text = replace(text,'4','๔') ;
  text = replace(text,'5','๕') ;
  text = replace(text,'6','๖') ;
  text = replace(text,'7','๗') ;
  text = replace(text,'8','๘') ;
  text = replace(text,'9','๙') ;
  text = replace(text,'0','๐') ;
  document.editform.wpTextbox1.value = text;
  document.editform.wpSummary.value = "เปลี่ยนเลขอารบิกเป็นไทย";
}
function addConvertToThaiNumber() {
  addTab("javascript:doConvertToThaiNumber() ", "2 ->๒", "ca-atnum", "เปลี่ยนเลขอารบิกเป็นไทย", "") ;
  akeytt() ;
}

if (document.title.indexOf("แก้ไข ") == 0) {
  if (window.addEventListener) window.addEventListener("load", addConvertToThaiNumber, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addConvertToThaiNumber) ;
}
/*  */

[แก้] แก้ย่อหน้าแรกสุด (ย่อหน้าสรุป)

/*  */
// ========== Edit Section 0 ==========
function addEditSection0() {
  ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page'];
  if (!document.getElementById) return;
  x = document.getElementById('ca-edit') ;
  if(!x) return;
  y = document.createElement('LI') ;
  y.id = 'ca-edit-0';
  if (x.className == 'selected') {
    if (/&action=edit&section=0$/.test(window.location.href)) {
      x.className = 'istalk';
      y.className = 'selected';
    } else {
      x.className = 'selected istalk';
    }
  } else if (x.className == 'selected istalk') {
    if (/&action=edit&section=0$/.test(window.location.href)) {
      x.className = 'istalk';
      y.className = 'selected istalk';
    } else {
      y.className = 'istalk';
    }
  } else {
    y.className = x.className;
    x.className = 'istalk';
  }
  z = document.createElement('A') ;
  if (x.children) {
    z.href = x.children[0].href + '&section=0';
    z.appendChild(document.createTextNode('0')) ;
    y.appendChild(z) ;
    document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling) ;
  } else {
    z.href = x.childNodes[0].href + '&section=0';
    z.appendChild(document.createTextNode('0')) ;
    y.appendChild(z) ;
    document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling) ;
  }
}

if (document.title.indexOf("Editing ") == -1) {
  if (window.addEventListener) window.addEventListener("load", addEditSection0, false) ;
  else if (window.attachEvent) window.attachEvent("onload", addEditSection0) ;
}

/*  */

[แก้] ดูความแตกต่างล่าสุด

/*  */
// ========== ดูความแตกต่างล่าสุด (Last diff) ==========
function doLastDiff() {
  var nurl="http://th.wikipedia.org/w/index.php?title=" + getPname() + "&diff=cur&oldid=prev";
  document.location=nurl;
}

function addLastDiff() {
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul') [0];
    var l=addlilink(tabs, "javascript:doLastDiff() ", 'ล่าสุด', '') ;
    l.lastChild.title="ดูความแตกต่างล่าสุด";
}

if (document.title.indexOf("แก้ไข") == -1) {
  if(wgCanonicalNamespace.indexOf("Special") == -1) {
    if (window.addEventListener) window.addEventListener("load", addLastDiff, false) ;
    else if (window.attachEvent) window.attachEvent("onload", addLastDiff) ;
  }
}
/*  */

Antiox Perfumy Dla Kobiet Studia administracyjne mieszkania opole Obróbka metalu, stal opisy gg. opisy na gg, opisy zdjęcia ślubne życzenia Baza przedszkoli F1 gify Bielizna damska tapety na pulpit Sprzedaż domen Oranżeria kick koparki Bułgaria wczasy Karaoke tani kredyt hipoteczny COOLsurf