V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
F19
V2EX  ›  JavaScript

关于 JS 脚本的问题

  •  
  •   F19 · 2020-10-10 12:24:35 +08:00 · 1865 次点击
    这是一个创建于 1500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我没学过 js,但是我想写一个油猴脚本。 功能是在论坛这些网站放一个很多回复语的选项,选中哪个回复语(比如,谢谢楼主。但是又不是只有这一句)就会填好在回复框,然后点击发布就可以了。 请问一下,写这样的脚本难吗。谢谢大家

    6 条回复    2020-10-12 09:33:12 +08:00
    yiXu
        1
    yiXu  
       2020-10-10 12:39:28 +08:00
    感觉不是特别难,匹配网站,添加 dom,dom 按钮添加触发,触发后根据 id 给输入框写入对应内容。
    IsaacYoung
        2
    IsaacYoung  
       2020-10-10 12:44:24 +08:00
    不难

    1. 找到回复正文的 class
    2. 绑定事件,例如点击时弹出弹窗是否引用该回复
    3. 如果是找到回复的输入框把内容复制进去
    imdong
        3
    imdong  
       2020-10-10 12:56:43 +08:00 via iPhone
    切入点挺好,从新手入门到中阶开发,能一步步优化上去,新手做不是很难(如果有其他编程语言基础的话),不然可能需要了解的东西还是挺多的,不要用 jQuery 之类的东西,可以直接搞原生。

    个人还是挺推荐这样的通过有目的实践的学习方法,而且难度不是很高。
    yamedie
        4
    yamedie  
       2020-10-10 13:09:08 +08:00
    (() => {
    let list = ['学习了', '谢谢楼主', '紫薯布丁'];
    let c = t => document.createElement(t);
    let s = t => document.querySelector(t);
    let ta = s('textarea');
    if(!ta) return;

    let box = c('div');
    box.style.position = 'absolute';
    box.style.display = 'none';
    box.style.background = 'rgba(230, 230, 230, 0.4)';
    box.style.borderRadius = '0.2em';

    for (let i of list) {
    let p = c('p');
    p.innerText = i;
    p.style.color = '#333';
    p.style.margin = '0.5em 1em';
    p.style.cursor = 'pointer';
    p.onclick = () => {
    ta.value = ta.value + i;
    box.style.display = 'none';
    };
    box.appendChild(p);
    }
    document.body.appendChild(box);

    ta.oncontextmenu = e => {
    e.preventDefault();
    console.log(e);
    let { pageX, pageY } = e;
    box.style.top = pageY + 'px';
    box.style.left = pageX + 'px';
    box.style.display = 'block';
    }
    })();


    // 根据楼主的描述写了一个
    yamedie
        5
    yamedie  
       2020-10-10 13:10:25 +08:00
    // 右键点击文本框的时候可以触发
    F19
        6
    F19  
    OP
       2020-10-12 09:33:12 +08:00
    @yamedie 大老厉害
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1213 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:21 · PVG 07:21 · LAX 15:21 · JFK 18:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.