Greasy Fork

Greasy Fork is available in English.

Save Div Text to TXT

Save text from a specified div to a txt file.

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Save Div Text to TXT
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Save text from a specified div to a txt file.
// @author       You
// @match        *://*/*
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @license      MIT
// ==/UserScript==

(function() {
  'use strict';

  // 默认的 div 选择器
  let divSelector = GM_getValue('divSelector', '#yourDivSelector');

  // 保存文本到 txt 文件
  function saveTextToTxt(text, filename) {
    const blob = new Blob([text], { type: 'text/plain' });
    const url = URL.createObjectURL(blob);
    const a = document.createElement('a');
    a.href = url;
    a.download = filename;
    a.click();
  }

  // 从指定 div 中获取文本并保存到 txt 文件
  function saveDivTextToTxt() {
    const divElement = document.querySelector(divSelector);
    if (divElement) {
      const text = divElement.innerText;
      saveTextToTxt(text, 'div_text.txt');
    } else {
      console.error('Div not found with selector:', divSelector);
    }
  }

  // 注册菜单命令,用于启用功能和更改 div 选择器
  GM_registerMenuCommand('Enable Div Text Save', () => {
    GM_setValue('divSelector', divSelector);
    saveDivTextToTxt();
  });

  GM_registerMenuCommand('Change Div Selector', () => {
    const newSelector = prompt('Enter the new div selector (e.g., "#newDivSelector"):');
    if (newSelector) {
      GM_setValue('divSelector', newSelector);
      divSelector = newSelector;
    }
  });

  // 设置界面,用于配置网址规则和对应的 div 选择器
  GM_registerMenuCommand('Configure Div Selector for Website', () => {
    const websiteUrlPattern = prompt('Enter the website URL pattern (regular expression):');
    if (!websiteUrlPattern) return;

    const divSelectorInput = prompt('Enter the div selector for this website (e.g., "#yourDivSelector"):');
    if (!divSelectorInput) return;

    // 保存网址规则和对应的 div 选择器
    GM_setValue('divSelector_' + websiteUrlPattern, divSelectorInput);

    // 如果当前打开的网页匹配了新的网址规则,则更新当前的 div 选择器
    if (new RegExp(websiteUrlPattern).test(location.href)) {
      divSelector = divSelectorInput;
    }
});

  // 在每次打开新页面时检查是否有匹配的网址规则,并更新 div 选择器
  const websiteUrls = Object.keys(GM_getValue());
  for (const websiteUrl of websiteUrls) {
    const websiteUrlPattern = websiteUrl.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // 转义正则特殊字符
    if (new RegExp(websiteUrlPattern).test(location.href)) {
      divSelector = GM_getValue(websiteUrl, '#yourDivSelector');
      break;
    }
  }
})();