【JavaScript】一个简单的油猴脚本——CSDN免登录复制

这篇具有很好参考价值的文章主要介绍了【JavaScript】一个简单的油猴脚本——CSDN免登录复制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

1.使得点击【登录复制】后可以直接复制,而不用登录。

2.设置整个页面的文本为可选中以及复制,而不用登录。

3.下载链接

元数据介绍

  • @name:脚本的名称。
  • @namespace:脚本的命名空间或者作者的网站地址。
  • @version:脚本的版本号。
  • @description:脚本的描述,包括功能的简要说明等内容。
  • @author:脚本的作者。
  • @match:脚本要匹配的网址,如匹配CSDN博客文章详情页面。
  • @icon:脚本在油猴脚本管理器中显示的图标,此处为CSDN的网站图标。
  • @license:脚本的许可证类型,这里是MIT许可证:允许使用、修改、分发、再授权和/或销售脚本的副本,只要在所有副本中包含了原始许可证和版权声明。
  • @thisURL:脚本的安装页面链接,这里是脚本在Greasy Fork网站的页面链接。
  • @downloadURL:脚本的下载链接,这里是脚本在Greasy Fork网站的下载链接。
  • @updateURL:脚本的更新链接,这里是脚本在Greasy Fork网站的更新链接。

@icon:可以放网站图标的URL地址,获取方法为:F12查看网页源代码,head标签下有个link标签,有icon标识,href处的链接就是。

csdn复制 油猴,脚本开发,javascript,前端,脚本,油猴,Greasy Fork

 

@thisURL:我自己添加的标签。

@downloadURL@updateURL:无需添加,发布后Greasy Fork会自己添加。

 

清爽版代码

// ==UserScript==
// @name         CSDN免登录复制【归忆_AC】
// @namespace    https://blog.csdn.net/qq1677852098
// @version      1.2
// @description  1.使得点击【登录复制】后可以直接复制,而不用登录; 2.设置整个页面的文本为可选中以及复制。
// @author       guiyi_ac
// @match        https://blog.csdn.net/*/article/details/*
// @icon         https://g.yssmx.com/static/logo/favicon32.ico
// @license      MIT
// @thisURL      https://greasyfork.org/zh-CN/scripts/487806-csdn%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6-%E5%BD%92%E5%BF%86-ac
// @downloadURL https://update.greasyfork.org/scripts/487806/CSDN%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6%E3%80%90%E5%BD%92%E5%BF%86_AC%E3%80%91.user.js
// @updateURL https://update.greasyfork.org/scripts/487806/CSDN%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6%E3%80%90%E5%BD%92%E5%BF%86_AC%E3%80%91.meta.js
// ==/UserScript==

(function() {
    'use strict';

    var elements = document.getElementsByTagName('pre');
    for (var i = 0; i < elements.length; i++) {
        var element = elements[i];

        element.innerHTML = element.innerHTML.replace(/signin/g, 'copyCode');
    }

    window.oncontextmenu = document.oncontextmenu = document.oncopy = null;

    var bodies = document.querySelectorAll('body');
    bodies.forEach(function(body) {
        var displayStyle = body.style.display;
        body.style.display = 'none';
        void body.offsetWidth;
        body.style.display = displayStyle;
    });

    [...document.querySelectorAll('body, body *')].forEach(dom => {
        ['onselect', 'onselectstart', 'onselectend', 'ondragstart', 'ondragend', 'oncontextmenu', 'oncopy'].forEach(ev => dom.removeAttribute(ev));
        dom.style['user-select'] = 'auto';
    });
})();

详细版代码

// ==UserScript==
// @name         CSDN免登录复制【归忆_AC】
// @namespace    https://blog.csdn.net/qq1677852098
// @version      1.1
// @description  1.使得点击【登录复制】后可以直接复制,而不用登录; 2.设置整个页面的文本为可选中以及复制。
// @author       guiyi_ac
// @match        https://blog.csdn.net/*/article/details/*
// @icon         https://g.yssmx.com/static/logo/favicon32.ico
// @license      MIT
// @thisURL      https://greasyfork.org/zh-CN/scripts/487806-csdn%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6-%E5%BD%92%E5%BF%86-ac
// @downloadURL https://update.greasyfork.org/scripts/487806/CSDN%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6%E3%80%90%E5%BD%92%E5%BF%86_AC%E3%80%91.user.js
// @updateURL https://update.greasyfork.org/scripts/487806/CSDN%E5%85%8D%E7%99%BB%E5%BD%95%E5%A4%8D%E5%88%B6%E3%80%90%E5%BD%92%E5%BF%86_AC%E3%80%91.meta.js
// ==/UserScript==

//1.使得点击【登录复制】后可以直接复制,而不用登录------------------------------------------------------------
// 获取所有代码块的元素
var elements = document.getElementsByTagName('pre');

// 遍历所有元素
for (var i = 0; i < elements.length; i++) {
    // 获取当前元素
    var element = elements[i];

    // 替换所有的signin为copyCode,/g代表替换所有的signin
    element.innerHTML = element.innerHTML.replace(/signin/g, 'copyCode');
}

//2.将整个页面设置为可编辑状态,可以自由地增删改--------------------------------------------------------------
//开启后会导致有的链接点击后无法跳转!!!
/*
//获取整个文档
let doc = document.querySelectorAll('*');

doc.forEach(c => {
    c.contentEditable = true;   //设置文档为可编辑
})
*/

//3.设置整个页面的文本为可选中以及复制-----------------------------------------------------------------------
//取消了在窗口和文档级别上对右键菜单和复制操作的事件监听。通过将它们设置为 null,使得在网页中右键菜单和复制操作不再受到限制。
window.oncontextmenu = document.oncontextmenu = document.oncopy = null;

//首先获取所有 <body> 元素,然后使用 forEach 循环遍历每个 <body> 元素,并将其 outerHTML 属性重新赋值为其当前值。
//这样做可以强制重新渲染页面,以便取消任何可能存在的事件监听或样式更改。
//这样子强制渲染会出错!!!!!比如使得点击事件失效。
// document.querySelectorAll('body').forEach(dom => dom.outerHTML = dom.outerHTML);

// 获取所有 body 元素
var bodies = document.querySelectorAll('body');

// 遍历每个 body 元素
bodies.forEach(function (body) {
    // 保存当前 body 元素的 display 样式
    var displayStyle = body.style.display;

    // 修改 body 元素的 display 样式为 'none'
    body.style.display = 'none';

    // 强制重新渲染元素
    void body.offsetWidth;

    // 将 display 样式恢复到原始值,触发重新渲染
    body.style.display = displayStyle;
});

//获取页面中所有的 <body> 元素及其所有子元素,并使用 forEach 循环遍历每个元素。
document.querySelectorAll('body, body *').forEach(dom => {
    //遍历每个元素时,这里移除了一系列事件属性,包括选择事件、拖拽事件、右键菜单事件和复制事件。
    //通过调用 removeAttribute() 方法,将这些事件属性移除,以确保不会受到任何事件监听的限制。
    ['onselect', 'onselectstart', 'onselectend', 'ondragstart', 'ondragend', 'oncontextmenu', 'oncopy'].forEach(ev => dom.removeAttribute(ev));

    //将 user-select 样式属性设置为 'auto',以允许用户在页面中进行文本选择操作。
    //通常情况下,网页开发者会使用 CSS 来控制用户是否可以选择文本,通过将 user-select 设置为 'auto',使得用户可以自由地选择文本。
    dom.style['user-select'] = 'auto';
});

(by 归忆)文章来源地址https://www.toymoban.com/news/detail-849580.html

到了这里,关于【JavaScript】一个简单的油猴脚本——CSDN免登录复制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在油猴脚本中添加css样式的方法

    由于项目要求,需要在系统页面注入dom元素,且对这些注入的元素在UI界面层有美观度要求,就避免不了要对其CSS样式优化。 通常在油猴脚本中添加CSS样式的方法如下: 一、引入外部css文件 二、使用油猴自带样式添加请求 三、自定义样式函数 四、js添加样式 或 以上是在油

    2024年01月23日
    浏览(40)
  • 【油猴脚本】ChatGPT 智能 Prompts 提示词助手

    ChatGPT 智能 Prompts 可以为你带来更好的使用体验助你训练好用的ChatGPT:添加快捷指令(prompts)新增:论文专家角色、支持自动发送、固定智能助手…还有更多需求可以到仓库Issues里发起! 仓库地址:https://github.com/winchesHe/chatGPT-prompt-scripts 一、将 src/index.js 的内容复制到油猴

    2024年02月05日
    浏览(62)
  • 让iOS Safari浏览器支持油猴脚本

    Userscripts 是一款免费 iOS Safari 浏览器插件,可以兼容油猴脚本,但如果油猴脚本代码没有对手机进行适配的话可能不会生效。  1、 首先 打开设置 找到  Safari 浏览器  选择  扩展  然后 勾选  Userscripts  所有网站中 选择  允许     然后打开 Userscripts 后按照下图所示,在

    2024年02月13日
    浏览(63)
  • 油猴脚本Tampermonkey的简介和安装使用,五分钟安装

    Tampermonkey 是一款免费的浏览器扩展和最为流行的用户脚本管理器,它支持以下浏览器,Chrome,Microsoft Edge,Safari,Opera Next,Firefox等等,油猴可以通过安装各类脚本对网站进行定制。当然伟大的脚本面向的是所有上网者,所以借由各位大神的脚本我们能实现更多更强大的功能

    2024年02月04日
    浏览(74)
  • 油猴脚本某创力文档-某人文库免费文档下载

    这是一个用于 Tampermonkey 或其他支持用户脚本的浏览器扩展的油猴脚本。 看到论坛经常有小伙伴们需要下载 某创力文档 - 某人文库 一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的烦恼而诞生,尽可

    2024年02月19日
    浏览(47)
  • 网页JS自动化脚本(一)安装油猴或暴力猴等脚本管理器并新建脚本

    在我们的工作生活当中使用网页的机会越来越高,很多时候要进行重复的操作,所以进行一些JS脚本就成了可选项 首先我们要在网页浏览器中安装上脚本管理器,这里示范的是安装暴力猴,是一个开源的免费的小软件,是在github上的一款软件,下载下来之后名称为 Violentmonkey_2.13.0_ch

    2024年02月04日
    浏览(35)
  • 简单使用!使用shell脚本实现ssh免密登录

    目录 1.expect命令:可以在外输入,某些命令执行后弹出的输入提示 2.使用expect命令来创建本地的公钥文件 3.复制ssh的公钥文件到各个主机上: 4.完整的shell脚本:

    2024年02月14日
    浏览(43)
  • 油猴脚本Tampermonkey实现读取网站cookie和设置cookie方法

    里面有一个这样的说明:意思是这个还处于试验阶段,可能会报错误,确实,在我使用下来,我发现,它不单单是报错这么简单,而是真的就不能用好吗 会报各种错误,比如: not supported 或者是 Unchecked runtime.lastError: The message port closed before a response was received 这一顿操作下来

    2024年02月07日
    浏览(67)
  • 让苹果iOS的手机iPhone和电脑Safari浏览器支持油猴脚本

    官方的AppStore是没有油猴插件(Tampermonkey)的,官方插件不仅少,功能被阉割,相对弱小,还收费。嗯,这很苹果第三方拓展。 这是油猴插件(Tampermonkey)的下载地址,上面是老版本,下面是新版本。 https://safari.tampermonkey.net/tampermonkey.safariextz https://www.tampermonkey.net/?browser=s

    2024年02月07日
    浏览(108)
  • WPF-一个简单登录界面

    创建一个WPF工程,创建名为 Login5 的WPF项目。 添加Nuget包 MaterialDesignThemes 界面的整体布局和样式代码 MainWindow.xaml.cs

    2024年02月04日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包