首页 > 其他分享 >使用一段简单的油猴脚本来改善沉浸式翻译插件的阅读体验

使用一段简单的油猴脚本来改善沉浸式翻译插件的阅读体验

时间:2024-12-04 18:03:55浏览次数:12  
标签:沉浸 插件 网页 样式 翻译 style document 油猴

Why

因为感觉沉浸式翻译这个浏览器插件,翻译后的默认样式不太容易区分,尤其是遇到那种内容多且排版不是那么好的网页,所以就写了一段简单的脚本来稍微改善下观感。

效果

如下图:
在这里插入图片描述

完整代码

完整代码如下:

// ==UserScript==
// @name         修改沉浸式翻译插件翻译后的内容样式
// @namespace    http://tampermonkey.net/
// @version      2024-10-04
// @description  修改沉浸式翻译插件翻译后的内容样式。
// @author       王某人
// @run-at       document-end
// @match        *://*/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=stackoverflow.com
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    var myStyle = document.createElement('style');
    myStyle.innerText = 'font.notranslate>font>font{display:block;color:blue;background-color:aqua;padding:10px;border-radius:7px;}';
    document.head.appendChild(myStyle);
    console.log("沉浸式翻译插件的样式脚本注入成功!");
})();

关键代码解释

上面的完整代码中的关键代码就这下面 5 行:

// @run-at       document-end
// @match        *://*/*
var myStyle = document.createElement('style');
myStyle.innerText = 'font.notranslate>font>font{display:block;color:blue;background-color:aqua;padding:10px;border-radius:7px;}';
document.head.appendChild(myStyle);
  1. 第一行:用 @run-at document-end 指定脚本的运行时机是在 document 加载完成之后。但在这个例子中,其实不指定运行时机,也就是使用油猴的默认值也是可以的,因为只要能将样式注入到网页中,我们再使用沉浸式翻译这个插件来翻译内容【即使是先翻译,再注入样式也可以,具体的自行搜索浏览器的重排和重绘】,这些翻译出来的内容就会被注入的样式的选择器选中,自然就可以实现样式的修改。
  2. 第二行:用 @match 来匹配任意的网址(*://*/*),也就是在任何网页上,这段油猴脚本都会生效。正则中的第一个星号是表示任意的协议,也就是 http 和 https 都可以被匹配到。第二个星号是表示任意的域名。第三个星号是表示这个域名下的任意网页都可以被匹配到。如果想让编写的油猴脚本对任意一个网页生效,那么这个 @match 后面的内容就像这样写就可以了。
  3. 第三行:就是创建一个 style 标签,用变量 myStyle 接收,名称随便。
  4. 第四行:通过 innerText 这个属性(当然也可以使用别的属性,比如:textContent)向这个 style 标签中添加内容,这个内容就是要向网页中注入的样式,是以字符串形式编写的,具体的样式根据自己的喜好来即可。但其实我们可以先在网页中使用这个插件翻译一个段落,然后再用开发者工具来实时调整这个段落的样式,具体一点的步骤写在后面的【修改样式的小技巧【optional】】中了。
  5. 第五行:就是将这个 style 标签添加到网页的 head 标签下,这样就可以让这个style标签中的样式对整个网页生效了。

脚本运行成功后,可以在开发者工具中的 Element 面板中找到注入的样式,如下图:
在这里插入图片描述

修改样式的小技巧【optional】

使用浏览器的左上角的选择工具,选中要修改的元素,然后就可以在 element.style 这里编写这个元素的行内样式,调好这个样式后,直接右键 Copy rule ,将整个样式规则复制出来,修改掉选择器部分即可。

选择器的获取这里就不多说了,看左侧的网页结构就可以很容易找出来,而且不止一种写法。

如下图:
在这里插入图片描述

使用vim来合并多行的小技巧【optional】

如果你不用 vim 或者 gvim ,这里不用再看了。

这是配合上面的 Copy rule 这个技巧的另一个小技巧。是我写脚本时比较常用的技巧。

也就是将复制出来的规则,粘贴到 vim 编辑器中,然后使用 vim 的 normal 模式下的 J 命令来合并多个行【按一次 J,合并两行为一行,合并多行需要按多次 J 】,前提是你没有重新映射这个命令。

效果类似下图:
在这里插入图片描述
这样就可以很容易得到一个合并在一行中的样式规则,如果想要去掉那些多余的空格,那么可以使用 vim 的替换命令,gvim 中也一样:

:s/ //g

执行后,就可以去掉所有的空格了,但如果你的CSS选择器是用的后代选择器【空格】的话,就需要再手动添加下。

标签:沉浸,插件,网页,样式,翻译,style,document,油猴
From: https://blog.csdn.net/qq_43535992/article/details/144238692

相关文章

  • 【stablediffusion动画教程】AnimateDiff 目前生成视频最流畅的SD插件 | stablediffus
    前言测试了下最近比较火的AnimateDiff,感觉确实蛮棒的,画面流畅没有闪帧的问题,真的感觉视频生成又近了一步,下面小刚分享下基本的使用方法。效果预览(电脑配置不行仅作参考):一、安装插件(以秋叶大佬的整合包为例):AnimateDiff项目:https://github.com/guoyww/AnimateDiffWe......
  • 使用ModelArts VS Code插件调试训练ResNet50图像分类模型
    应用场景Notebook等线上开发工具工程化开发体验不如IDE,但是本地开发服务器等资源有限,运行和调试环境大多使用团队公共搭建的CPU或GPU服务器,并且是多人共用,这带来一定的环境搭建和维护成本。因此使用本地IDE+远程Notebook结合的方式,可以同时享受IDE工程化开发和云上资源的即开......
  • 基于jQuery UI的仿PhotoShop界面屏幕标尺插件
    在线演示 下载 jQueryUI.Ruler是一款基于Jquery.UI的仿Photoshop界面的屏幕标尺插件。该插件可以在一个DOM元素上使用屏幕标尺,这个元素可以是body元素,也可以是一个div元素。它的特点有:支持多种尺寸单位:px,mm,cm,in。支持三种刻度模式:major,minor,micro。支持鼠标......
  • 可滑动触摸的jQuery隐藏侧边栏菜单插件
    slide-and-swipe-menu是一款支持移动手机滑动触摸的隐藏侧边栏菜单jquery插件。该侧边栏菜单基于touchSwpie插件,可以通过按钮来触发打开侧边栏菜单,并通过滑动触摸来关闭菜单。 在线演示 下载  安装可以通过bower或nmp来安装该侧边栏菜单插件。bowerinstall......
  • jQuery实现类似视频播放功能的图片播放器插件
    jqueryImagePlayer是一款可以像视频播放一样逐张播放图片的图片播放器JQUERY插件。当你需要介绍你的某个产品和项目的时候,这个插件就可以发挥它的强大作用。你可以将产品或项目的各个功能做成图片,然后使用该插件来逐帧播放。现在大多数的产品和项目介绍使用的都是gif图片或flas......
  • 编写html时,你有没有用过Emmet插件呢?说说它的优点及规则有哪些?
    是的,Emmet(以前称为ZenCoding)是一个非常强大的HTML和CSS编写插件,它可以极大地提高开发效率。我虽然不能直接“使用”插件,因为我是一个语言模型,但我了解它的工作原理和语法,并且可以在生成代码片段时应用Emmet的逻辑。Emmet的优点:快速编写HTML和CSS:使用缩写语法,可以......
  • 【Unity 手枪模型和材质插件】Cyberpunk Handguns (Cyber, Guns) 高质量手枪模型及其
    CyberpunkHandguns(Cyber,Guns)是一款专为Unity开发的插件,提供一系列具有未来科技感的手枪模型和材质,适用于赛博朋克风格的游戏或场景。这个插件为开发者提供了高质量、细节丰富的武器资源,能够帮助游戏快速构建充满未来感的枪械系统。主要特点:高质量的赛博朋克风格手......
  • Neo4j APOC-01-图数据库 apoc 插件 windows10 安装
    neo4japoc系列Neo4jAPOC-01-图数据库apoc插件介绍Neo4jAPOC-01-图数据库apoc插件安装neo4jonwindows10Neo4jAPOC-03-图数据库apoc实战使用使用Neo4jAPOC-04-图数据库apoc实战使用使用apoc.path.spanningTree最小生成树如何安装APOC插件安装Neo4j的A......
  • mac版本wireshark加载Lua插件
    1、配置lua脚本路径:Wireshark->AboutWireshark->文件夹(Folders)添加或者查看个人Lua插件的存放位置,后面开发的插件需要存放到这个路径下才会生效。2、添加或者修改lua插件后,需要重新加载lua插件:分析->重新载入Lua插件3、更新wireshark遇到报错解决方法:安装两个wireshark,其......
  • jQuery页面滚动元素进入视口发生动画特效插件
    jquery-aniview是一款非常实用的页面滚动元素进入视口发生动画特效JQUERY插件。该插件基于animate.css,你可以使用animate.css中所有的动画过渡效果。该插件会检测指定元素是否进入视口,在元素进入视口时则执行指定的动画效果。预览  下载 使用方法使用jquery-aniview插件......