Greasy Fork is available in English.

编程随想的博客 - 评论区修复(重制版)

原始版本评论区修复,使用标准 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 });