Pop-up window

Open current page or links to a standalone window without UI elements

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

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

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

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

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

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

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

Advertisement:

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

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

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

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

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

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

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

Advertisement:

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name        Pop-up window
// @namespace   Open current page or links to a standalone window without UI elements
// @match       *://*/*
// @grant       none
// @version     Alpha-v1
// @description Open current page or links to a standalone window without UI elements
// @author      JesusisLord
// @license     MIT
// ==/UserScript==
(function() {
  "use strict";

  function createStandaloneWindow(url, targetWindow = window) {
    const win = targetWindow.open(url, "_blank", "width=800,height=600,toolbar=no,location=no,menubar=no,scrollbars=no");
    win.focus();
    return win;
  }

  const openLinkHandler = (event) => {
    // Prevent default link behavior (needed):
    event.preventDefault();
    const url = event.target.href || event.target.parentNode.href;
    createStandaloneWindow(url);
  };

  const movePageHandler = () => {
    createStandaloneWindow(window.location.href);
  };

  document.addEventListener("click", (event) => {
    if (event.ctrlKey) {
      if (event.target.nodeName === "A") {
        openLinkHandler(event);
      } else if (!event.target.isContentEditable && !event.target.matches('input, textarea, button, select')) {
        event.preventDefault(); // Optional: Prevent default actions on empty space
        movePageHandler();
      }
    }
  });
})();