您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Список игроков на странице передачи :)
// ==UserScript== // @name Список игроков на странице передачи // @namespace http://tampermonkey.net/ // @version 1.1 // @description Список игроков на странице передачи :) // @author Яшка // @match https://www.heroeswm.ru/* // @icon https://www.google.com/s2/favicons?sz=64&domain=heroeswm.ru // @include https://www.heroeswm.ru/* // @include https://www.lordswm.com/* // @grant none // @license Яшка // ==/UserScript== const USER_TABLE_ID = 'hwm_helper_saveBlacksmith_user_table'; const NICK_CREATE_ID = 'hwm_helper_saveBlacksmith_nick_create'; const DESCRIPTION_CREATE_ID = 'hwm_helper_saveBlacksmith_description_create'; const SAVE_CREATE_ID = 'hwm_helper_saveBlacksmith_save_create_btn'; const USER_STORE_ID = 'hwm_helper_saveBlacksmith_user_store'; const SELECT_USER_ID = 'hwm_helper_saveBlacksmith_save_create_btn'; // || https://www.lordswm.com/art_transfer.php?* const lordsUrl = 'https://www.lordswm.com'; const hwmUrl = 'https://www.heroeswm.ru'; (function () { 'use strict'; if (window.location.href.split('https://www.heroeswm.ru/art_transfer.php?id').length > 1) { createUserTable(document.getElementsByClassName('wb')[0]) } if (window.location.href.split('https://www.heroeswm.ru/el_transfer.php').length > 1) { createUserTable(document.getElementsByClassName('wb')[0]) } if (window.location.href.split('https://www.heroeswm.ru/transfer.php').length > 1) { createUserTable(document.getElementsByTagName('center')[0]) } function createUserTable(table) { let br = document.createElement("br"); let userTable = document.createElement("table"); userTable.setAttribute('width', '600') userTable.setAttribute('cellpadding', '4') userTable.setAttribute('align', 'center') let userTbody = document.createElement("tbody"); userTable.classList.add('wb') userTable.classList.add('wbwhite') userTable.id = USER_TABLE_ID table.after(br) br.after(userTable); createUserTableHead(userTable) userTable.appendChild(userTbody) createUserTableBody(userTbody) createUserTableActions(userTbody) //userTable.appendChild(userTbody) } function createUserTableHead(table) { let userThead = document.createElement("thead"); let userTr = document.createElement("tr"); userTr.setAttribute('style', 'border: 1px solid;'); let userNameB = document.createElement("b"); userNameB.textContent = 'Ник'; let userNameTd = document.createElement("td"); userNameTd.attributes.colspan = 2; userNameTd.setAttribute('colspan', '2'); userNameTd.appendChild(userNameB); let descriptionB = document.createElement("b"); descriptionB.textContent = 'Описание'; let descriptionTd = document.createElement("td"); descriptionTd.attributes.colspan = 2; descriptionTd.setAttribute('colspan', '2'); descriptionTd.appendChild(descriptionB); let saveB = document.createElement("b"); saveB.textContent = 'Действие'; let saveTd = document.createElement("td"); saveTd.attributes.colspan = 2; saveTd.setAttribute('colspan', '2'); saveTd.appendChild(saveB); table.appendChild(userThead); userThead.appendChild(userTr); userTr.appendChild(userNameTd); userTr.appendChild(descriptionTd); userTr.appendChild(saveTd); return true; } function createUserTableBody(table) { let storeString = localStorage.getItem(USER_STORE_ID) if (!storeString) { return false } let store = JSON.parse(storeString) for (const storeItem of store) { createUserTrBody(table, storeItem.nick, storeItem.description) } } function createUserTrBody(table, nick, description) { let actionsTr = document.createElement("tr"); actionsTr.setAttribute('style', 'border: 1px solid;'); let inputName = document.createElement("b"); inputName.textContent = nick; inputName.setAttribute('colspan', '2'); inputName.setAttribute('align', 'right'); let nameTd = document.createElement("td"); nameTd.setAttribute('colspan', '2'); nameTd.appendChild(inputName); let inputDescription = document.createElement("b"); inputDescription.textContent = description; inputDescription.setAttribute('colspan', '2'); inputDescription.setAttribute('align', 'right'); let descriptionTd = document.createElement("td"); descriptionTd.setAttribute('colspan', '2'); descriptionTd.appendChild(inputDescription); let btnTd = document.createElement("td"); btnTd.setAttribute('colspan', '2'); let btnSelect = document.createElement("input"); btnSelect.type = 'button'; btnSelect.value = 'Ввести'; btnSelect.key = nick; btnSelect.onclick = () => selectUser(nick); btnSelect.setAttribute('colspan', '2'); btnSelect.setAttribute('colspan', '2'); btnSelect.setAttribute('style', 'margin-right:4px'); let btnDelete = document.createElement("input"); btnDelete.type = 'button'; btnDelete.value = 'Удалить'; btnDelete.key = nick; btnDelete.onclick = () => deleteUser(nick); btnDelete.setAttribute('colspan', '2'); btnDelete.setAttribute('align', 'right'); btnDelete.setAttribute('style', 'margin-right:4px'); btnTd.appendChild(btnSelect); btnTd.appendChild(btnDelete); table.appendChild(actionsTr); actionsTr.appendChild(nameTd); actionsTr.appendChild(descriptionTd); actionsTr.appendChild(btnTd); return true; } function createUserTableActions(table) { let actionsTr = document.createElement("tr"); actionsTr.setAttribute('style', 'border: 1px solid;'); let inputName = document.createElement("input"); inputName.placeholder = 'Ник'; inputName.setAttribute('colspan', '2'); inputName.setAttribute('align', 'right'); inputName.id = NICK_CREATE_ID; let nameTd = document.createElement("td"); nameTd.setAttribute('colspan', '2'); nameTd.appendChild(inputName); let inputDescription = document.createElement("input"); inputDescription.placeholder = 'Описание'; inputDescription.setAttribute('colspan', '2'); inputDescription.setAttribute('align', 'right'); inputDescription.id = DESCRIPTION_CREATE_ID; let descriptionTd = document.createElement("td"); descriptionTd.setAttribute('colspan', '2'); descriptionTd.appendChild(inputDescription); let btnSave = document.createElement("input"); btnSave.type = 'button'; btnSave.value = 'Добавить'; btnSave.id = SAVE_CREATE_ID; btnSave.onclick = () => saveNewUser(); btnSave.setAttribute('colspan', '2'); btnSave.setAttribute('align', 'right'); let btnTd = document.createElement("td"); btnTd.setAttribute('colspan', '2'); btnTd.appendChild(btnSave); table.appendChild(actionsTr); actionsTr.appendChild(nameTd); actionsTr.appendChild(descriptionTd); actionsTr.appendChild(btnTd); return true; } function saveNewUser() { let nick = document.getElementById(NICK_CREATE_ID).value; let description = document.getElementById(DESCRIPTION_CREATE_ID).value; if (!nick || !description) { alert('Не все поля заполнены'); return false; } let store = []; let storeString = localStorage.getItem(USER_STORE_ID); if (storeString) { store = JSON.parse(storeString) } store.push({ nick, description }) localStorage.setItem(USER_STORE_ID, JSON.stringify(store)); document.getElementById(USER_TABLE_ID).remove() createUserTable() } function selectUser(nick) { document.getElementsByName('nick')[0].value = nick } function deleteUser(nick) { let store = JSON.parse(localStorage.getItem(USER_STORE_ID)); let storeFiltered = store.filter((obj) => { return obj.nick !== nick; }); localStorage.setItem(USER_STORE_ID, JSON.stringify(storeFiltered)); document.getElementById(USER_TABLE_ID).remove() createUserTable() } })();