您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
复制 Notion 页面正文部分的 HTML 到剪贴板。
- // ==UserScript==
- // @name Copy Notion Page Content
- // @name:zh-CN 复制 Notion 页面正文内容
- // @namespace http://www.notion.so/
- // @version 0.1
- // @description Copy the Notion page's html content to clipboard.
- // @description:zh-cn 复制 Notion 页面正文部分的 HTML 到剪贴板。
- // @author Ruter Lü
- // @match https://www.notion.so/*
- // @grant none
- // @run-at document-idle
- // ==/UserScript==
- (function() {
- 'use strict';
- // Helper function to wait for the element ready
- const waitFor = (...selectors) => new Promise(resolve => {
- const delay = 500;
- const f = () => {
- const elements = selectors.map(selector => document.querySelector(selector));
- if (elements.every(element => element != null)) {
- resolve(elements);
- } else {
- setTimeout(f, delay);
- }
- }
- f();
- });
- waitFor('div.notion-scroller .notion-record-icon').then(([iconEl]) => {
- console.log('Notion Page Loaded.');
- const disabled = iconEl.getAttribute('aria-disabled');
- if (disabled === 'true') {
- // Bind click event
- iconEl.addEventListener('click', event => {
- let content = document.querySelector('.notion-page-content');
- navigator.clipboard.writeText(content.outerHTML).then(function() {
- /* clipboard successfully set */
- console.log('Copy Notion Page Content Success.');
- }, function(e) {
- /* clipboard write failed */
- console.error(e);
- });
- });
- } else {
- return;
- }
- });
- })();