A set of custom events which make it easier to detect changes on the page.
Skrip ini tidak untuk dipasang secara langsung. Ini adalah pustaka skrip lain untuk disertakan dengan direktif meta // @require https://update.greasyfork.org/scripts/370623/1192045/Bunpro%3A%20Helpful%20Events.js
// ==UserScript==
// @name Bunpro: Helpful Events
// @namespace http://tampermonkey.net/
// @version 1.0.3
// @author Kumirei
// @require https://greasyfork.org/scripts/432418-wait-for-selector/code/Wait%20For%20Selector.js?version=990207
// @include *bunpro.jp*
// @exclude *community.bunpro.jp*
// ==/UserScript==
;(function (wfs) {
// Add a custom event for when BP creates a new body
var newBody = new Event('new-body')
wfs.wait('body > header', function (e) {
fireEvent(newBody)
})
// Add a custom event for when you get a new item in reviews
var newReviewItem = new Event('new-review-item')
wfs.wait('.level_lesson_info a', function (e) {
fireEvent(newReviewItem)
})
// Add a custom event when you go to study or cram page
var quizPage = new Event('quiz-page')
wfs.wait('#show-grammar', function (e) {
fireEvent(quizPage)
})
// Add a custom event when you go to study page
var studyPage = new Event('study-page')
wfs.wait('#study-page #show-grammar', function (e) {
fireEvent(studyPage)
})
// Add a custom event when you go to cram page
var cramPage = new Event('cram-page')
wfs.wait('#cram-page #show-grammar', function (e) {
fireEvent(cramPage)
})
// Fires the given event on the HTML element
function fireEvent(event) {
var retryInterval = setInterval(function () {
if (document.readyState == 'complete') {
$('HTML')[0].dispatchEvent(event)
clearInterval(retryInterval)
}
}, 100)
}
})(window.wfs)