MediaWiki:Common.js: Perbedaan antara revisi
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 154: | Baris 154: | ||
/* | /* 3. Notifikasi Link Luar */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
$('a.external').click(function(e) { | |||
var url = $(this).attr('href'); | |||
if (!confirm('Anda akan meninggalkan Mippedia menuju situs luar:\n' + url + '\n\nLanjutkan?')) { | |||
e.preventDefault(); | |||
} | |||
}); | |||
}); | |||
/* 2. | /* 2. Tombol Dengar Artikel (Speech Synthesis) */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
if (mw.config.get('wgIsArticle') && mw.config.get('wgNamespaceNumber') === 0) { | if (mw.config.get('wgIsArticle') && mw.config.get('wgNamespaceNumber') === 0) { | ||
var | var isSpeaking = false; | ||
var synth = window.speechSynthesis; | |||
var speakBtn = $('<div id="speak-btn" style="display:inline-block; background:#f8f9fa; border:1px solid #a2a9b1; padding:5px 12px; border-radius:20px; font-size:12px; cursor:pointer; margin-bottom:15px; color:#36c; font-weight:bold;">🔊 Dengarkan Artikel</div>'); | |||
if ($('.page-heading').length) { | |||
$( | $('.page-heading').after(speakBtn); | ||
if ($( | } else { | ||
$('#firstHeading').after(speakBtn); | |||
} | |||
speakBtn.click(function() { | |||
if (!isSpeaking) { | |||
var textToSpeak = $('#mw-content-text p').text().substring(0, 1000); // Batasi 1000 karakter biar gak berat | |||
var utterThis = new SpeechSynthesisUtterance(textToSpeak); | |||
utterThis.lang = 'id-ID'; // Set Bahasa Indonesia | |||
utterThis.onend = function() { isSpeaking = false; speakBtn.text('🔊 Dengarkan Artikel'); }; | |||
synth.speak(utterThis); | |||
isSpeaking = true; | |||
speakBtn.text('🛑 Berhenti Mendengar'); | |||
} else { | |||
synth.cancel(); | |||
isSpeaking = false; | |||
speakBtn.text('🔊 Dengarkan Artikel'); | |||
} | |||
}); | }); | ||
} | } | ||
}); | }); | ||
/* 3. | /* 3. Anti-Ghosting pada Link Kosong (Redlinks) */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
$('a. | $('a.new').click(function(e) { | ||
var | var confirmCreate = confirm("Halaman ini belum tersedia di Mippedia.\n\nApakah Anda ingin berkontribusi membuatnya?"); | ||
if (! | if (!confirmCreate) { | ||
e.preventDefault(); | e.preventDefault(); | ||
} | } | ||
| Baris 207: | Baris 207: | ||
}); | }); | ||
/* 4. | /* 4. Highlight Teks saat di-Share (Text Fragment) */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
// Fitur modern browser buat highlight teks yang diseleksi saat link dibuka | |||
' | if ('scrollRestoration' in history) { | ||
document.addEventListener('mouseup', function() { | |||
var selectedText = window.getSelection().toString(); | |||
if (selectedText.length > 10) { | |||
// Bisa dikembangkan buat munculin menu "Share highlighted text" | |||
console.log("User tertarik pada bagian: " + selectedText); | |||
} | |||
}); | |||
} | |||
}); | |||
/* 5. Custom Scrollbar (Biar Estetik di Desktop & HP) */ | |||
$("<style>").prop("type", "text/css").html(` | |||
::-webkit-scrollbar { width: 6px; height: 6px; } | |||
::-webkit-scrollbar-track { background: #f1f1f1; } | |||
::-webkit-scrollbar-thumb { background: #36c; border-radius: 10px; } | |||
::-webkit-scrollbar-thumb:hover { background: #2a4b8d; } | |||
`).appendTo("head"); | |||