count specific li elements within section.mw-pager-body
当前为
// ==UserScript==
// @name RosettaCode Conribution Records Counter
// @namespace http://tampermonkey.net/
// @version 1.0.2
// @description count specific li elements within section.mw-pager-body
// @author aspen138
// @match *://rosettacode.org/wiki/Special:Contributions?end=&limit=5000&namespace=all&start=&tagfilter=&target=*
// @match *://rosettacode.org/wiki/Special:Contributions*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
function countAndDisplayDistinctTitles() {
// Find the target section
var section = document.querySelector('section.mw-pager-body');
if (!section) return;
// Collect all title attributes from 'a' elements
var liElements = section.querySelectorAll('a.mw-contributions-title');
var titlesSet = new Set();
liElements.forEach(function(aElement) {
var title = aElement.getAttribute('title');
if (title && !title.startsWith('User:') && !title.startsWith('File:')) {
titlesSet.add(title);
}
});
console.log('titlesSet=',titlesSet);
// Count distinct titles
var countDistinctTitles = titlesSet.size;
// Create a new element to display the count of distinct titles
var resultDisplay = document.createElement('div');
resultDisplay.textContent = `(RosettaCode Contribution Records Counter) Count of distinct titles: ${countDistinctTitles}`;
resultDisplay.style.backgroundColor = 'yellow'; // Set the background color to yellow
resultDisplay.style.color = 'blue'; // Optional: Set text color to blue for better readability
resultDisplay.style.padding = '10px'; // Optional: Add some padding
resultDisplay.style.marginBottom = '10px'; // Optional: Add some margin at the bottom
resultDisplay.style.border = "2px solid black";
// Insert the results as the first child of the section
if (section.firstChild) {
section.insertBefore(resultDisplay, section.firstChild);
} else {
section.appendChild(resultDisplay);
}
}
// Assuming this function is called when the document is fully loaded
window.addEventListener('load', countAndDisplayDistinctTitles);
})();