zuimeng 发表于 2023-1-27 21:00:32

新人,有两个问题 ### 油猴中的方法怎么才能在控制台访问 ...

### 油猴中的方法怎么才能在控制台访问

### js 如何实现同步延时

李恒道 发表于 2023-1-27 21:41:16

最近论坛太清闲了,出于谦让心态我决定留给楼下答

steven026 发表于 2023-1-28 09:01:21

第一个问题:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3589&page=1#pid40997

第二个问题让楼上来回答@李恒道

王一之 发表于 2023-1-28 09:37:25

开始接力了是吧,核心知识点在`Promise`

```js
// ==UserScript==
// @name         同步sleep
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://bbs.tampermonkey.net.cn/
// ==/UserScript==

(async function () {
    'use strict';
    function sleep(t) {
      return new Promise(resolve => {
            setTimeout(resolve, t);
      })
    }
    await sleep(4000);
    alert('ok');
})();
```

李恒道 发表于 2023-1-28 09:48:56

楼上是正解
但是注意promise不是一个完全的同步延时
js一般不太存在休眠的概念的
而且注意async具有传染性

脚本体验师001 发表于 2023-1-28 13:19:01

开始认真了是吧,找到这篇文章 https://zhuanlan.zhihu.com/p/112126898
但所有主流浏览器均默认于 2018 年 1 月 5 日禁用 SharedArrayBuffer,参见 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer
所以如果没有大佬提出更好的解决方案,我想同步延时只能使用 while 阻塞

zuimeng 发表于 2023-1-29 13:00:47

大家太热情了,非常感谢 激动

zuimeng 发表于 2023-1-29 14:00:21

第一个问题还不是很懂,比如,我在油猴中定义了一个方法,代码如下
// ==UserScript==
// @name         测试加法
// @namespace    https://bbs.tampermonkey.net.cn/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       you
// @match      https://bbs.tampermonkey.net.cn/*
// ==/UserScript==

(function() {
    'use strict';
   function addq(a,b){
         let c=a+b
      return c;
   }
    // Your code here...
})();
如何实现控制台访问addq方法

李恒道 发表于 2023-1-29 18:04:17

zuimeng 发表于 2023-1-29 14:00
第一个问题还不是很懂,比如,我在油猴中定义了一个方法,代码如下
// ==UserScript==
// @name         测 ...

(function() {
    'use strict';
   function addq(a,b){
         let c=a+b
      return c;
   }
   windows.addq=addq
    // Your code here...
})();
页: [1]
查看完整版本: 新人,有两个问题 ### 油猴中的方法怎么才能在控制台访问 ...