在网页上对cookie进行操作
// ==UserScript==
// @name Cookie Operate
// @namespace http://tampermonkey.net/
// @version 0.1.1
// @description 在网页上对cookie进行操作
// @author myaijarvis
// @match https://www.toutiao.com/*
// @run-at document-end
// @grant GM_setClipboard
// @grant GM_deleteValue
// @grant GM_deleteValue
// @grant unsafeWindow
// ==/UserScript==
/*
注意:
document.cookie 只能获取当前页面可见的 cookie,它不包括 HTTP-only cookies、Secure cookies、以及其他域的 cookies。这是出于安全和隐私的考虑,防止通过脚本获取敏感信息。
在页面上,通过 JavaScript 访问的 cookie 主要受到 SameSite 属性和 HTTP-only 属性的限制。SameSite 属性规定了 cookie 是否可以随着跨站请求发送,而 HTTP-only 属性则禁止通过脚本访问 cookie。
如果你需要获取所有 cookie,包括 HTTP-only 的和其他域的,一种方法是通过浏览器的开发者工具查看。在 Chrome 浏览器中,你可以按 F12 打开开发者工具,然后切换到 "Application" 或 "Storage" 标签,查看 "Cookies" 部分。
*/
(function() {
'use strict';
// 添加一个输入框用于输入cookie的key
const keyInput = document.createElement('input');
keyInput.type = 'text';
keyInput.placeholder = '输入cookie的key';
keyInput.style.position = 'fixed';
keyInput.style.top = '50px';
keyInput.style.left = '10px';
keyInput.style.zIndex = '10000';
keyInput.value='';
document.body.appendChild(keyInput);
// 添加一个按钮用于获取cookie值
const getCookieBtn = document.createElement('button');
getCookieBtn.textContent = '获取Cookie值';
getCookieBtn.style.position = 'fixed';
getCookieBtn.style.top = '90px';
getCookieBtn.style.left = '10px';
getCookieBtn.style.zIndex = '10000';
getCookieBtn.addEventListener('click', function() {
const key = keyInput.value.trim();
const cookieValue = getCookie(key);
alert(`Cookie值为:${cookieValue}`);
});
document.body.appendChild(getCookieBtn);
// 添加一个按钮用于复制cookie值
const copyCookieBtn = document.createElement('button');
copyCookieBtn.textContent = '复制Cookie值';
copyCookieBtn.style.position = 'fixed';
copyCookieBtn.style.top = '110px';
copyCookieBtn.style.left = '10px';
copyCookieBtn.style.zIndex = '10000';
copyCookieBtn.addEventListener('click', function() {
const key = keyInput.value.trim();
const cookieValue = getCookie(key);
GM_setClipboard(cookieValue);
alert('Cookie值已复制到剪贴板');
});
document.body.appendChild(copyCookieBtn);
// 添加一个按钮用于删除cookie键值
const deleteCookieBtn = document.createElement('button');
deleteCookieBtn.textContent = '删除Cookie值';
deleteCookieBtn.style.position = 'fixed';
deleteCookieBtn.style.top = '140px';
deleteCookieBtn.style.left = '10px';
deleteCookieBtn.style.zIndex = '10000';
deleteCookieBtn.addEventListener('click', function() {
const key = keyInput.value.trim();
deleteCookie(key);
alert('Cookie键值已删除');
});
document.body.appendChild(deleteCookieBtn);
// 获取指定key的cookie值
function getCookie(key) {
const cookies = document.cookie.split(';');
console.log(cookies)
for (const cookie of cookies) {
const [cookieKey, cookieValue] = cookie.split('=');
if (cookieKey.trim() === key) {
return cookieValue;
}
}
return null;
}
// 删除指定key的cookie键值
function deleteCookie(key) {
document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
}
})();