上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: 40252492 - 

网页文本替换汉化的油猴脚本,支持包含加粗和斜体

[复制链接]
  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-22 11:24:29 | 显示全部楼层
    cxxjackie 发表于 2022-8-19 20:59
    最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...

    勉勉强器看得懂
    #dulstMenu a就是,id是dulstMenu的,空格是“下面的”,下面的a元素
    .name[data-cardid]就是,class是name的,属性里有data-cardid=啥的
    li.啥就是,<li开头的
    [data-name="nation"]>.data就是,父元素是XXX的子元素XXX,父元素>子元素,中间不能隔着其他元素
    谢谢大佬,我知道CSS选择器是啥了
    回复
    订阅

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-22 14:54:13 | 显示全部楼层

    本帖最后由 40252492 于 2022-8-23 12:00 编辑

    本帖最后由 40252492 于 2022-8-23 12:00 编辑

    本帖最后由 40252492 于 2022-8-22 17:45 编辑

    本帖最后由 40252492 于 2022-8-22 17:44 编辑

    本帖最后由 40252492 于 2022-8-22 17:44 编辑

    本帖最后由 40252492 于 2022-8-22 17:36 编辑

    cxxjackie 发表于 2022-8-19 20:59

    最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...

    大佬大佬,我遇到点问题,上边栏的play按钮上的字Play没生效,他的class有4个
    class="menuItem playButton playAMatch button"
    您写的#dulstMenu a,左边按钮的替换都生效了,只有Play没有生效
    我自己试了试写选择器,写唯一的.playButton没生效,写同时拥有4个class的.menuItem.playButton.playAMatch.button也没生效,照理说您写的应该会生效的哇,请问怎么回事?
    QQ图片20220822134732.png

    然后,请看图,这是网址
    https://dulst.com/overdulst/cards
    1、右上角的“硬币”,我写的是.coins .unit
    2、下面列表里的卡名,我写的是.card-list-container a .name
    请问有什么可以优化的地方吗?比如怎么写能让查找的速度变快点?

    还有一个刚出现的问题,在文本中含有一个换行我拿您教我的$$看了一下是 \n,请问上面的文本替换的英文部分怎么写?谢谢!我从$$里展开2级找到一个不是\n而是空格的一行,复制上去就好了,但是还是写成\u00A0这样的比较好,不然后人看到会当做普通空格的,而且粘起来太费劲了,请问这种\u00A0的码叫什么?哪里查?
    不用了,我查到了,叫unicode编码,也找到转换工具了
    还不是unicode编码,是Native转Ascii,转出来是\u0020

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-8-22 20:33:58 | 显示全部楼层
    40252492 发表于 2022-8-22 14:54
    [md]> 本帖最后由 40252492 于 2022-8-22 17:44 编辑

    > 本帖最后由 40252492 于 2022-8-22 17:44 编辑

    用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的是全大写。不确定的话可以先选中元素(注意看后面有个 == $0),然后在控制台中输$0.innerText,用这种方式复制更靠谱。
    查找更快就是尽量少套太多后代/子代选择器,比如第二个卡名的父级a元素有很多属性,可以写成:a[data-cardid]>.name,这样少套一层(还有子代也比后代要快),不过实际差异极小,一般不用太纠结这种问题,只要能正确选中就行。
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-23 12:07:34 | 显示全部楼层

    cxxjackie 发表于 2022-8-22 20:33

    用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...

    多谢,还真的有个 == $0),又学一招!{:4_106:}
    后代就是空格,子代就是>,后代要把全部后代都过一遍,子代直接找一级,应该是因为这个所以快。
    1T`45RK2VKX0\[6_6)1G\]E@7.jpg
    多谢大佬!!!祝您升职加薪!子孙满堂!长命百岁!

    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-23 12:44:59 | 显示全部楼层

    本帖最后由 40252492 于 2022-8-23 14:55 编辑

    本帖最后由 40252492 于 2022-8-23 13:23 编辑

    本帖最后由 40252492 于 2022-8-23 13:23 编辑

    cxxjackie 发表于 2022-8-22 20:33

    用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...

    大佬大佬,还有个小问题,您看,选择器很多,已经突破天际了,请问选择器咋写成竖着的哇?是要定义个变量的列表吧,我想给每行加注释

    image.png

    我先自己写写试试看。。。
    崔羊羊大失败!!!QAQ
    是用var的吗,但是格式是啥啊,百度查了半天都没找到,不知道搜什么关键词

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-8-23 21:11:38 | 显示全部楼层

    本帖最后由 cxxjackie 于 2022-8-23 21:20 编辑

    所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比如给卡牌效果那部分加上翻译后加粗倾斜,其他部分只翻译等等,而不是牵一发动全身。分开的写法用你25楼的代码删掉第46行就对了。
    硬要写一起然后分行也不是不行,用字符串连接:

    'a' //注释1
    + ',b' //注释2
    + ',c' //注释3
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-24 10:20:10 | 显示全部楼层

    cxxjackie 发表于 2022-8-23 21:11

    [md]所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...

    [/quote]

    [md]多谢大佬!真的很感谢!这几周给您添蘑菇了!Q3Q
    其实昨晚我自己研究出来了,是这样写的,逗号和加号在选择器后面,注释在下一行

    '选择器1,'+
    //注释1
    '选择器2,'+
    //注释2
    '选择器3'
    //注释3

    网上管这种连接方法叫“满天星”,说是不整洁,但是我发现,如果用反斜杠连接,就没法在其中穿插【//注释】,这样的也不行→【/*注释*/】

    '选择器1,\
    选择器2,\
    选择器3'

    貌似是因为只有1对单引号,其中的内容全会被当成值

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-8-24 12:04:12 | 显示全部楼层
    40252492 发表于 2022-8-24 10:20
    [md]> [cxxjackie 发表于 2022-8-23 21:11](forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
    > ...

    我记得\这种分行方式的兼容性不如加号,在一些浏览器里可能行不通,如果不在意兼容性,模板字符串(https://developer.mozilla.org/zh ... e/Template_literals)应该是更好的选择,跟\一样不能写注释,但支持更多特性。除非有特别的理由,我不建议用\这种不上不下的写法。
    还有一种写法比加号更整洁:
    1. [
    2.     'a', //注释
    3.     'b',
    4.     'c'
    5. ].join(',')
    复制代码

    这种写法相比直接用加号的性能稍差,但差距小到可以忽略不计,所以也有很多人推崇。
    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-24 12:25:56 | 显示全部楼层

    本帖最后由 40252492 于 2022-8-24 15:02 编辑

    本帖最后由 40252492 于 2022-8-24 15:01 编辑

    本帖最后由 40252492 于 2022-8-24 14:55 编辑

    本帖最后由 40252492 于 2022-8-24 14:54 编辑

    本帖最后由 40252492 于 2022-8-24 13:19 编辑

    本帖最后由 40252492 于 2022-8-24 13:17 编辑

    本帖最后由 40252492 于 2022-8-24 13:06 编辑

    本帖最后由 40252492 于 2022-8-24 13:05 编辑

    本帖最后由 40252492 于 2022-8-24 12:58 编辑

    本帖最后由 40252492 于 2022-8-24 12:36 编辑

    cxxjackie 发表于 2022-8-23 21:11

    [md]所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...

    找到问题所在了,我打开https://dulst.com/overdulst就不生效,我打开https://dulst.com/overdulst/cards就生效
    // @match https://dulst.com/overdulst/*这个写法不太对吧大佬
    我把*前面的斜杠删了,没问题了
    (下面的不用看了)

    大佬大佬,我这么写完之后,一开始还能生效,然后把注释粘进去,“上边栏按钮”在一次修改后替换不生效了,找原因,再刷新全部替换都突然不生效了,请您帮忙看看哪里出问题了哇?QAQ

    脚本猫不报错,我就改用油猴脚本了,报错这个
    image.png
    我把4.13的油猴脚本删了,重下了个4.16.1的在网页的右上角,油猴脚本里没有我的这个脚本,很奇怪哦
    image.png
    我查到一个方法https://blog.csdn.net/sandalphon4869/article/details/112132749(←他写串行了),突然想起来您在发布库的帖子里告诉我的写法,写上这句,就不报错了,但是替换还不生效,F12里没有红色报错,右上角油猴的图标里甚至没有我的JS那行
    image.png

    代码如下

        const xuanzeqi =
    //【卡片
        'a[data-cardid]>.name,'+
        //列表里的卡名
    //===点开卡片的
        '.name[data-cardid],'+
        //卡名
        '.effect p,'+
        //能力
        '[data-name="nation"]>.data,'+
        //国家
        'li.type span,'+
        //类型+种族、指令类型那行
        //稀有度li.rarity(未使用)
    //【UI
    //===上边栏
        '#dulstMenu a,'+
        //上边栏按钮
    //===登入前首页
        '.playNowLanding,'+
        //正中间的免费开玩按钮.playNowLanding
        '.coins .unit,'+
        //右上角游戏币单位.coins .unit
    //===登入后首页
        '.gameInfo>.tagline,'+
        //标语第1行
        '.gameInfo>.title,'+
        //标语第2行
        '.gameInfo>.description,'+
        //标语第3行
        '#play,'+
        //下方开始游戏按钮
        '#gameDashboard>.callToAction>.button'
        //下方卡片列表按钮
        ;
    
        const getwenben = new ElementGetter();
        getwenben.each(xuanzeqi, document, p => {
            if (p.innerText in fanyi) {
                p.innerText = fanyi[p.innerText];
            }
        });
    })();

    我把这一大堆换行的const xuanzeqi =删了,下面getwenben.each(后面就一个'#dulstMenu a',右上角插件图标也出不来JS开关那行,代码里也不提示我哪里有问题
    image.png

    回复

    使用道具 举报

  • TA的每日心情

    2023-9-1 16:15
  • 签到天数: 71 天

    [LV.6]常住居民II

    4

    主题

    48

    回帖

    59

    积分

    初级工程师

    积分
    59
    发表于 2022-8-24 17:24:05 | 显示全部楼层

    本帖最后由 40252492 于 2022-8-24 18:34 编辑

    本帖最后由 40252492 于 2022-8-24 17:56 编辑

    本帖最后由 40252492 于 2022-8-24 17:55 编辑

    本帖最后由 40252492 于 2022-8-24 17:32 编辑

    大佬大佬,我又遇到一个问题呀,https://dulst.com/overdulst
    这个网页右上角的登录按钮点开,弹窗里的这个Login按钮,为啥没有文本啊,难道它是一张图片吗?
    我看到value="Login",这是赋值吗?这个能用选择器写出来吗?修改<>里面的参数的值
    image.png
    还有像这样的,输入框里面显示的内容,也是在<>里面的,是不是需要用别的函数了?
    image.png
    完了之后,还有一个小问题,您写的库,each(selector[, parent], callback)中的selector选择器的引号内的结尾,是否可以有逗号?
    因为我把选择器写成竖向,结尾要往下加,很容易忘记续逗号
    简单来说就是,选择器的引号里可以写成这样吗?
    '选择器1,选择器2,选择器3,'←这里,结尾是个逗号
    我自己试试不就好了
    好吧,多个选择器的结尾不能有逗号,否则报错,反正还得续加号,自己上点心吧\~Q3Q

    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表