مدیاویکی:Gadget-yekewarning.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
/**
* Below code given from: https://dotnettipsrepository.svn.codeplex.com/svn/Trunk/ASP.NET/YeKe/jquery.yeke.js
* The dotnettipsrepository codes released under MIT License per: http://dotnettipsrepository.codeplex.com/license
* we modified it a bit for using here ;)
*/
function substituteCharInFireFox(charCode, e) {
var keyEvt = document.createEvent("KeyboardEvent");
keyEvt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, charCode);
e.target.dispatchEvent(keyEvt);
e.preventDefault();
}
function substituteCharInChrome(charCode, e) {
//it does not work yet!
//https://bugs.webkit.org/show_bug.cgi?id=16735
var keyEvt = document.createEvent("KeyboardEvent");
keyEvt.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 0, charCode);
e.target.dispatchEvent(keyEvt);
e.preventDefault();
}
function insertAtCaret(myValue, e) {
var obj = e.target;
var startPos = obj.selectionStart;
var endPos = obj.selectionEnd;
var scrollTop = obj.scrollTop;
obj.value = obj.value.substring(0, startPos) + myValue + obj.value.substring(endPos, obj.value.length);
obj.focus();
obj.selectionStart = startPos + myValue.length;
obj.selectionEnd = startPos + myValue.length;
obj.scrollTop = scrollTop;
e.preventDefault();
}
mw.loader.using(['jquery.client']).then(function () {
$(document).ready(function () {
var arabicYeCharCode = 1610;
var arabicAlefMaghsooreCharCode = 1609;
var persianYeCharCode = 1740;
var arabicKeCharCode = 1603;
var persianKeCharCode = 1705;
var profile = $.client.profile();
$(document).keypress(function (e) {
var keyCode = e.which;
if (profile.name == 'msie') {
switch (keyCode) {
case arabicYeCharCode:
event.keyCode = persianYeCharCode;
showCharWarning();
break;
case arabicAlefMaghsooreCharCode:
event.keyCode = persianYeCharCode;
showCharWarning();
break;
case arabicKeCharCode:
event.keyCode = persianKeCharCode;
showCharWarning();
break;
}
}
else if (profile.name == 'firefox') {
switch (keyCode) {
case arabicYeCharCode:
substituteCharInFireFox(persianYeCharCode, e);
showCharWarning();
break;
case arabicAlefMaghsooreCharCode:
substituteCharInFireFox(persianYeCharCode, e);
showCharWarning();
break;
case arabicKeCharCode:
substituteCharInFireFox(persianKeCharCode, e);
showCharWarning();
break;
}
}
else {
switch (keyCode) {
case arabicYeCharCode:
insertAtCaret(String.fromCharCode(persianYeCharCode), e);
showCharWarning();
break;
case arabicAlefMaghsooreCharCode:
insertAtCaret(String.fromCharCode(persianYeCharCode), e);
showCharWarning();
break;
case arabicKeCharCode:
insertAtCaret(String.fromCharCode(persianKeCharCode), e);
showCharWarning();
break;
}
}
});
});
});
function showCharWarning(){
return; // غیرفعالش کردم
if ($("#yekewarning").length === 0){
$('body').append("<div id='yekewarning'><p>لطفاً با استفاده از راهنمای <a style='color:blue;' href='//fa.wikipedia.org/wiki/%D9%88%DB%8C%DA%A9%DB%8C%E2%80%8C%D9%BE%D8%AF%DB%8C%D8%A7:%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C'>فارسینویسی</a> صفحهکلید استاندارد فارسی را نصب کنید و نویسههای <big><big>ي</big></big> و <big><big>ك</big></big> را به کار نبرید.</p></div>");
mw.loader.using( 'jquery.ui', function() {
$("#yekewarning").dialog();
});
}
}