V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
smilemm
V2EX  ›  macOS

写了一个 macOS 的 App,可以在 Safari 中注入脚本,习惯用 Safari 的老哥可以尝试一下🙏(免费)

  •  
  •   smilemm · 2020-12-04 23:55:44 +08:00 · 2923 次点击
    这是一个创建于 1449 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2020-12-07 16:13:39 +08:00
    qiaamei
        1
    qiaamei  
       2020-12-05 02:36:36 +08:00
    和 Tampermonkey 类似吗 能添加 GreasyFork 上面的脚本吗
    Cosmozz
        2
    Cosmozz  
       2020-12-05 07:55:17 +08:00 via iPhone
    我记得有个软件叫 userscripts 跟你这个好像
    winddweb
        3
    winddweb  
       2020-12-05 10:51:31 +08:00
    有意思。现在用的是 cascadea css 插件和 tampermonkey js 插件,有空试试你这个
    tranjazz
        4
    tranjazz  
       2020-12-05 11:01:00 +08:00 via iPhone
    试一下,能跑京东签到之类的脚本么
    imhuhe
        5
    imhuhe  
       2020-12-05 11:48:55 +08:00
    能用于 ublacklist 订阅过滤垃圾网站吗?
    ZZY19890604
        6
    ZZY19890604  
       2020-12-06 01:11:50 +08:00
    能做个类似 Chrome 上 SwitchyOmega 这种的 Safari 扩展么,就算收费也支持
    smilemm
        7
    smilemm  
    OP
       2020-12-06 02:31:50 +08:00
    @zh92412 不太确定,感觉 Safari 没有这样的接口,对扩展的限制还挺多的。
    smilemm
        8
    smilemm  
    OP
       2020-12-06 02:34:13 +08:00
    @imhuhe 应该可以通过写个在 Google 运行的脚本来实现。
    smilemm
        9
    smilemm  
    OP
       2020-12-06 02:35:58 +08:00
    @qiaamei 不太确定,没怎么用过类似的软件,不过原理就是通过 eval 函数来执行的,应该可以运行大多数脚本🤔
    smilemm
        10
    smilemm  
    OP
       2020-12-06 02:40:21 +08:00
    @tranjazz 没用过京东签到,可以尝试一下在京东首页运行触发签到按钮的 click 事件的脚本。
    smilemm
        11
    smilemm  
    OP
       2020-12-06 11:46:11 +08:00
    写了个 V2EX 的优化回复显示的脚本,只适配了单页的情况:
    // match regex:
    // https://www.v2ex.com/t/732305*

    ```javascript
    function $(element, selector) {
    return [...element.querySelectorAll(selector)]
    }

    if (window == window.top) {

    let boxs = document.querySelectorAll('#Main > .box')
    let mainBox = boxs[1]

    let cells = [...mainBox.getElementsByClassName('cell')]
    cells.shift()

    let dict = {}
    for (let cell of cells) {
    let name = $(cell, 'strong > a')[0]?.innerHTML ?? ''
    dict[name] = cell
    }

    for (let cell of cells) {
    let replyContent = $(cell, '.reply_content > a')[0]
    if (replyContent) {
    let replyToName = replyContent.innerHTML
    // console.log(replyToName)
    dict[replyToName]?.appendChild(cell)
    cell.style.marginLeft = '2em'
    }
    }

    }
    ```
    morize
        12
    morize  
       2020-12-06 14:44:38 +08:00
    支持楼主,不过没有 safari 工具栏用起来还是不如 userscripts 方便。
    tysb777
        13
    tysb777  
       2020-12-07 09:36:30 +08:00
    试试 谢谢分享
    vtvw
        14
    vtvw  
       2020-12-07 11:48:37 +08:00
    其实缺的是像 greasyfork.org 这样的商店,大多数人想要的是“拿来即用”
    smilemm
        15
    smilemm  
    OP
       2020-12-07 16:13:39 +08:00
    @vtvw 嗯嗯,后面会加入共享功能。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1131 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:47 · PVG 02:47 · LAX 10:47 · JFK 13:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.