您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
サイト内のCookieを編集できるようになるスクリプトです。
// ==UserScript== // @name Cookie Editor // @namespace http://tampermonkey.net/ // @version 0.3 // @description サイト内のCookieを編集できるようになるスクリプトです。 // @author You // @match *.x-feeder.info/*/ // @match *.x-feeder.info/*/sp/ // @exclude *.x-feeder.info/*/settings/** // @match http://drrrkari.com/room/ // @match http://www.3751chat.com/ChatRoom* // @match https://pictsense.com/* // @match http://www.himachat.com/ // @match https://discord.com/* // @match https://*.open2ch.net/* // @require https://greasyfork.org/scripts/396472-yaju1919/code/yaju1919.js?version=798050 // @require https://greasyfork.org/scripts/388005-managed-extensions/code/Managed_Extensions.js?version=720959 // @grant GM.setValue // @grant GM.getValue // ==/UserScript== (function() { 'use strict'; // カスタマイズ領域 const cookieInfoColor = "lightyellow"; // Cookie情報の色 //----------------- // Cookieをセットする関数。「feederチャット - sidを変える」(https://greasyfork.org/ja/scripts/402949)というスクリプトからお借りしました。 function setCookie(c_name, value, expiredays) { // pathの指定 var path = location.pathname; // pathをフォルダ毎に指定する場合のIE対策 var paths = new Array(); paths = path.split("/"); if (paths[paths.length - 1] != "") { paths[paths.length - 1] = ""; path = paths.join("/"); } // 有効期限の日付 var extime = new Date().getTime(); var cltime = new Date(extime + (60 * 60 * 24 * 1000 * expiredays)); var exdate = cltime.toUTCString(); // クッキーに保存する文字列を生成 var s = ""; s += c_name + "=" + encodeURIComponent(value); // 値はエンコードしておく s += "; path=" + path; if (expiredays) { s += "; expires=" + exdate + "; "; } else { s += "; "; } // クッキーに保存 document.cookie = s; } //--------------------------------------------------------------------------------------------------------------------------------------- const addBtn = (h, title, func) => { // ボタンを追加する関数 return $("<button>").text(title).click(func).appendTo(h); }; let inputCookieName, inputCookieValue, inputCookieExpireDays, si; // siはsetIntervalのidを格納する変数 const setConfig = () => { const h = $("<div>"); let oldCookies; let cookieInfo = $("<div>").css("color", cookieInfoColor).appendTo(h); // サイト内のCookieを表示する要素 inputCookieName = yaju1919.addInputText(h, { title: "Cookieの名前", placeholder: "Cookieの名前を入力", save: "AM_inputCookieName", width: "90%", }); inputCookieValue = yaju1919.addInputText(h, { title: "Cookieの値", placeholder: "Cookieの値を入力", save: "AM_inputCookieValue", width: "90%", }); inputCookieExpireDays = yaju1919.addInputNumber(h, { title: "Cookieの有効期限", placeholder: "Cookieの有効期限を入力", save: "AM_inputCookieExpireDays", width: "90%", value: 0, min: Number.NEGATIVE_INFINITY, max: Infinity, }); const cookieInfoLoad = () => { // Cookieを取得 if (oldCookies === document.cookie) return; cookieInfo.empty().text(`Cookie : ${document.cookie.split(";").length}個`); let activeElm = document.activeElement; let cookies = document.cookie; let cookieInfoElm; oldCookies = cookies; cookies.split(";").forEach(v => { cookieInfoElm = yaju1919.addInputText(cookieInfo, { readonly: true, textarea: true, value: v === "" ? "Cookieが見つかりませんでした。" : v, width: "100%", }); let elm = h.find("textarea").last(); elm.focus(() => { // フォーカスされた要素に表示されているCookieの名前と値を入力欄に入力 if (elm.val() === "Cookieが見つかりませんでした。") return; elm.val().split("=").forEach((v, i) => { h.find("input").eq(i).val(decodeURIComponent(v)); }); }); }); activeElm.focus(); } addBtn(h, "編集", () => { const cookieName = inputCookieName(); const cookieValue = inputCookieValue(); const cookieExpireDays = inputCookieExpireDays(); setCookie(cookieName, cookieValue, cookieExpireDays); cookieInfoLoad(); }); addBtn(h, "Cookie全削除", () => { let cookies = document.cookie; cookies.split("; ").forEach(v => { setCookie(v.replace(/=.*/, ""), "", -1); cookieInfoLoad(); }); }); addBtn(h, "ページリロード", () => { location.reload(); }); // Cookieを1秒間隔で取得 clearInterval(si); si = setInterval(() => { cookieInfoLoad(); }, 1000); //---------------------- cookieInfoLoad(); // 起動時にCookieを取得 return h; } win.Managed_Extensions["Cookie Editor"] = { config: setConfig, tag: "実用的", } })();