关于 JS 脚本的问题

2020-10-10 12:24:35 +08:00
 F19

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

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

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

个人还是挺推荐这样的通过有目的实践的学习方法,而且难度不是很高。
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
2020-10-10 13:10:25 +08:00
// 右键点击文本框的时候可以触发
F19
2020-10-12 09:33:12 +08:00
@yamedie 大老厉害

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713608

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX