Reformat Post Permalinks - deltaruneboards.net

Turns "Posted on:" links in post headers into normal working permalinks. 2025-11-22

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Reformat Post Permalinks - deltaruneboards.net
// @namespace    https://greasyfork.org/en/users/766248-snarp
// @version      0.5
// @description  Turns "Posted on:" links in post headers into normal working permalinks. 2025-11-22
// @author       snarp
// @match        https://deltaruneboards.net/*
// ==/UserScript==

/*

This userscript reformats post permalinks to look like this:

    <a title="Permalink" href="#entry92157" style="text-decoration:underline">Posted on:</a>

By default, they look like this:

    <a title="" href="#" onclick="link_to_post(92157); return false;" style="text-decoration:underline">Posted on:</a>

Clicking one does not set the browser URL to a working permalink URL. It 
instead opens a dialog allowing the user to manually copy a URL in this format:

    https://deltaruneboards.net/index.php?showtopic=2938&view=findpost&p=92157

Which, when entered into the browser address bar, will redirect to:

    https://deltaruneboards.net/index.php?showtopic=2938&st=90&#entry92157

This is unexpected behavior that makes acquiring the permalink more 
time-consuming than using built-in browser methods (right-clicking and 
selecting 'Copy link' or left-clicking and copying from the browser address 
bar).

*/

(function() {
  'use strict';

  function reformatPostPermalinks() {
    for (const pdiv of document.querySelectorAll("div.post-normal")) {
      // post ID is stored in a node directly before the post div: `<a name="entry92157"></a>`
      let pid = pdiv.previousElementSibling.getAttribute('name');
      let plink = pdiv.querySelector('span.postdetails a');
      plink.setAttribute('href', '#'+pid);
      plink.setAttribute('title', 'Permalink');
      plink.removeAttribute('onclick');
    }
  }

  reformatPostPermalinks();

})();