原始版本评论区修复,使用标准 WebAPI 重写,并增加了一点检查和提示。
// ==UserScript== // @name 编程随想的博客 - 评论区修复(重制版) // @description 原始版本评论区修复,使用标准 WebAPI 重写,并增加了一点检查和提示。 // @namespace UnKnown // @author UnKnown // @license Unlicense // @version 1.0 // @icon https://program-think.blogspot.com/favicon.ico // @match https://program-think.blogspot.com/* // @grant none // @run-at document-start // @inject-into content // ==/UserScript== "use strict"; const poNullNote = [ "编程随想的博客 - 评论区修复(重制版):", "编程随想的评论区代码,需要从 a#comment-editor-src 这个超链接元素的链接中,提取一个名为 postID 的链接参数。", "大致在 2022 年 5 月,Google 修改了这个链接的格式。链接参数名字也从 postID 变成了 po。", "但评论区代码无从更新,评论区无法加载。", "然后就有了这个(和别的)修复脚本,工作原理大致是:找到 po,复制一份,把名字改成 postID,重新加到链接上。", "现在,这个脚本找不到名为 po 的链接参数,postID 也没有重新出现,所以修复大概是失效了,需要更新。", "请编写脚本反馈,也欢迎协助修复!", "目前超链接元素的链接是:" ].join("\n\n"); const addPostID = () => { const $editor_src = document.querySelector("a#comment-editor-src"); if ($editor_src === null) return; const editorUrl = new URL($editor_src.href); const editorParams = editorUrl.searchParams; if (editorParams.get("postID") !== null) return; const postID = editorParams.get("po"); if (postID !== null) { editorParams.set("postID", postID); $editor_src.href = editorUrl.href; } else { alert(poNullNote + $editor_src.href); } }; document.addEventListener("DOMContentLoaded", addPostID, { once: true });