梦泽宇 发表于 2023-9-27 19:44:09

知乎详情页修改标题求助

问题:如何能在点进知乎任意一个问题的详情页面里快速显示修改后的内容,而不显示原问题

下面是自己写的,但是达不到效果:
```
let timer = setInterval(() => {
if (document.querySelectorAll(".QuestionHeader-title") !== null) {
    //找到了定时器
    document.querySelectorAll(".QuestionHeader-title").innerHTML = "油猴脚本开发!"
    clearInterval(timer);
}
}, 100);
```

cxxjackie 发表于 2023-9-27 19:44:10

试试这个:https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
定时器的实时效果是不太好,而且知乎页面似乎会在加载后再做一次替换,这可能是你修改失败的原因,用elmGetter.each + document-start就行了。

Wandering 发表于 2023-9-27 21:03:26

本帖最后由 Wandering 于 2023-9-27 21:05 编辑

实测有用,是不是match错了,还是标题是指网页标题

```js
// ==UserScript==
// @name         New Userscript
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://www.zhihu.com/*
// ==/UserScript==

(function() {
    'use strict';
let timer = setInterval(() => {
if (document.querySelectorAll(".QuestionHeader-title") !== null) {
    //找到了定时器
    document.querySelectorAll(".QuestionHeader-title").innerHTML = "油猴脚本开发!";
    document.title = "油猴脚本开发!"
    clearInterval(timer);
}
}, 100);
    // Your code here...
})();

梦泽宇 发表于 2023-9-28 13:33:40

Wandering 发表于 2023-9-27 21:03
实测有用,是不是match错了,还是标题是指网页标题

```js


match没问题,修改标题能达到效果,但是加载中会显示下原标题,再显示修改后的内容,我想达到不显示原标题直接显示修改后的内容,有办法吗?

wyn665817 发表于 2023-9-28 15:48:02

本帖最后由 wyn665817 于 2023-9-28 15:53 编辑

```
// ==UserScript==
// @name         New Userscript
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://www.zhihu.com/*
// @run-at       document-start
// ==/UserScript==

// 先隐藏标题栏
var styleEl = document.createElement("style");
styleEl.innerHTML = ".QuestionHeader .QuestionHeader-title { visibility: hidden !important; }";
document.head.appendChild(styleEl);

let timer = setInterval(() => {
if (document.querySelectorAll(".QuestionHeader-title") !== null) {
    //找到了定时器
    document.querySelectorAll(".QuestionHeader-title").innerHTML = "油猴脚本开发!";
    document.title = "油猴脚本开发!";
    styleEl.remove(); // 修改恢复标题栏显示
    clearInterval(timer);
}
}, 100);
```

先用css样式隐藏标题,修改后再恢复显示,视觉上就像是标题栏加载的慢一步,而不是进行了修改。
为了保证效果,@run-at需要设置为document-start。

梦泽宇 发表于 2023-9-28 21:34:45

wyn665817 发表于 2023-9-28 15:48
```
// ==UserScript==
// @name         New Userscript


哇,谢谢哥哥,这思路厉害呀,但是我刚才试了下,要刷新好几次才会先隐藏再显示修改?是我这的问题吗?哥哥你试试?

梦泽宇 发表于 2023-9-28 23:58:47

cxxjackie 发表于 2023-9-28 22:34
试试这个:https://bbs.tampermonkey.net.cn/thread-2726-1-1.html
定时器的实时效果是不太好,而且知乎页 ...

哇,解决啦!爱你C大!!!{:4_101:}
页: [1]
查看完整版本: 知乎详情页修改标题求助