40252492 发表于 2022-8-22 11:24:29

cxxjackie 发表于 2022-8-19 20:59
最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...

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

40252492 发表于 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 编辑

> (forum.php?mod=redirect&goto=findpost&pid=33105&ptid=2862)
> > 最好不要这么搞,这个写法就是会把元素下的子元素一起搞没的,前面效果对加粗倾斜的处理就是这个原理(加 ...

大佬大佬,我遇到点问题,上边栏的play按钮上的字Play没生效,他的class有4个
class="menuItem playButton playAMatch button"
您写的#dulstMenu a,左边按钮的替换都生效了,只有Play没有生效
我自己试了试写选择器,写唯一的.playButton没生效,写同时拥有4个class的.menuItem.playButton.playAMatch.button也没生效,照理说您写的应该会生效的哇,请问怎么回事?
!(data/attachment/forum/202208/22/145156fxg1zxv5157fjni5.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

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

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

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


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

40252492 发表于 2022-8-23 12:07:34

cxxjackie 发表于 2022-8-22 20:33
用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...

多谢,还真的有个 == $0),又学一招!{:4_106:}
后代就是空格,子代就是>,后代要把全部后代都过一遍,子代直接找一级,应该是因为这个所以快。
!E@7.jpg](data/attachment/forum/202208/23/120732wjfd0f11n6jn2mff.jpg)
多谢大佬!!!祝您升职加薪!子孙满堂!长命百岁!

40252492 发表于 2022-8-23 12:44:59

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

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

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

> (forum.php?mod=redirect&goto=findpost&pid=33221&ptid=2862)
> > 用全大写的PLAY就可以了,代码里的innerText是实际显示的文字,元素面板里是首字母大写,但网页上显示的 ...

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

!(data/attachment/forum/202208/23/124416xq9ooqzqq9zooyey.png)

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

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

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

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

40252492 发表于 2022-8-24 10:20:10

> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> > 所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...



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

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

网上管这种连接方法叫“满天星”,说是不整洁,但是我发现,如果用反斜杠连接,就没法在其中穿插【//注释】,这样的也不行→【/\*注释\*/】
```
'选择器1,\
选择器2,\
选择器3'
```
貌似是因为只有1对单引号,其中的内容全会被当成值

cxxjackie 发表于 2022-8-24 12:04:12

40252492 发表于 2022-8-24 10:20
> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> ...

我记得\这种分行方式的兼容性不如加号,在一些浏览器里可能行不通,如果不在意兼容性,模板字符串(https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals)应该是更好的选择,跟\一样不能写注释,但支持更多特性。除非有特别的理由,我不建议用\这种不上不下的写法。
还有一种写法比加号更整洁:
[
    'a', //注释
    'b',
    'c'
].join(',')
这种写法相比直接用加号的性能稍差,但差距小到可以忽略不计,所以也有很多人推崇。

40252492 发表于 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 编辑

> (forum.php?mod=redirect&goto=findpost&pid=33267&ptid=2862)
> > 所以我一开始跟你说分开来写,代码不会很难看,维护也方便,还可以针对不同选择器写不同的处理函数,比 ...

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

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

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

代码如下

```
    const xuanzeqi =
//【卡片
    'a>.name,'+
    //列表里的卡名
//===点开卡片的
    '.name,'+
    //卡名
    '.effect p,'+
    //能力
    '>.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;
      }
    });
})();
```

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

40252492 发表于 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",这是赋值吗?这个能用选择器写出来吗?修改<>里面的参数的值
!(data/attachment/forum/202208/24/171850g534knbfxnvz545m.png)
还有像这样的,输入框里面显示的内容,也是在<>里面的,是不是需要用别的函数了?
!(data/attachment/forum/202208/24/183317al2tnh1n6y56z2n6.png)
~~完了之后,还有一个小问题,您写的库,each(selector[, parent], callback)中的selector选择器的引号内的结尾,是否可以有逗号?~~
~~因为我把选择器写成竖向,结尾要往下加,很容易忘记续逗号~~
~~简单来说就是,选择器的引号里可以写成这样吗?~~
~~'选择器1,选择器2,选择器3,'←这里,结尾是个逗号~~
我自己试试不就好了
好吧,多个选择器的结尾不能有逗号,否则报错,反正还得续加号,自己上点心吧\~Q3Q
页: 1 2 3 4 [5] 6 7 8
查看完整版本: 网页文本替换汉化的油猴脚本,支持包含加粗和斜体