上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

【油猴脚本开发】笔记

[复制链接]
  • TA的每日心情

    2022-8-15 10:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    9

    主题

    80

    回帖

    89

    积分

    初级工程师

    积分
    89

    新人报道油中3周年挑战者 lv1

    发表于 2021-8-5 20:37:48 | 显示全部楼层 | 阅读模式
    本帖最后由 unity韩 于 2021-8-11 21:33 编辑

    //@match xxxxx http://dsa.dayainfo.com/如果不加*号就是只能适配当前网址   http://dsa.dayainfo.com/ *加了*号可以任意任意一个字符
    / / @grant none 直接运行到前端。unsafeWindow就是运行在一个沙盒环境,去操作尖端的元素。
    //@grant unsafeWindow
    // @grant GM_addStyle 配合使用,获取GM权限。
    //@run-at document -start 可以快速的应用
    脚本样例document.creatElement 可以创建一个元素var butn = document.createElement("button"); 创建一个按钮butn.innerText="修改"; 修改按钮的名字butn.style.background="#757575"; 按钮的背景但n.style.color="#fff"; 按钮的颜色var textvalue = document.createElement("INPUT"); 创建一个可输入的文本框textvalue .setAttribute("type", "text");设置输入元素的type属性:









    textvalue.size = "10"; 设置他的大小为20
    textvalue.color="#ffff"; 设置他的颜色


    butn.onclick=function(){方法当按钮被点击时内容},事件触发
    document.getElementsByClassName("class的名字"); 根据类查找,返回一个数组
    x[0].innerText = textvalue.value 改变x的,通过文本值赋值

    document.querySelector(".second_nav")通过过滤器查找元素返回第一个类元素,对于类使用.calss.nameid 需要#id
    document.querySelectorAll(".second_nav") 通过搜索工具查找元素列表,返回的节点。集合数组,只能通过循环,无法增加个人改查
    share.parentElement.append(butn) ,分享); 追加()方法在被选元素的结尾(仍然在内部)插入指定内容。的insertBefore将元素追加到指定对象的前面(是同级关系)
    JS中常用追加元素的几种方法:追加,appendTo,之后before,insertAfter,insertBefore,appendChild [url]https://www.cnblogs.com/karajanking/p/7149970.html[/url]

    GM_addStyle('#s-hotsearch-wrapper{display:none'}通过GM权限,获取id为xx,并用display设置为none不显示。多用于屏蔽广告。

    通过父物体的id和要搜索物体的classname来找元素
    window.onload=function(){     var oDiv=document.getElementById( '父物体id ' );         var arr=getByClass(oDiv, '物体的classname ' ); alert(arr.length);//弹窗} ;function getByClass(oParent, sClassName){     var res=[];     var aTmp=oParent.getElementsByTagName( ' * ' );         for ( var i= 0 ; i<aTmp.length; i++) {         if (aTmp.className.indexOf(sClassName) != -1)
                  { res.push(aTmp ); } }        返回资源;}
    搬自吾爱破解 网站帖子:https://www.52pojie.cn/thread-1492463-1-1.html
    #Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者替换一个对象的现有属性,并返回此对象。
    #属性里面存的可能是方法也可能是值   值有(setter,getter)两个方法
    #Object.defineProperty(obj, prop, descriptor) 返回值 被传递给函数的对象obj
    #3个参数  1.obj 要定义属性的对象。 2. 要定义或替换的属性的名称或 Symbol  3.descriptor 要定义或修改的属性描述符

    (function(){
    var  aaa = "";
           Object.defineProperty(document, 'cookie', {
                     set:function(val){
                             debugger;
                             console.log(val)
                             aaa = val;
                                  return val;
                     },
                     get:function(){
                                 return aaa;
                    }
         });
    })()

    2.hook是有时机
    1.在控制台注入的hook,刷新网页就失效了
       在网页加载的第一个js的位置下断点,然后再控制台手动注入hook
    (有可能在注入有些站点的时候时机会晚一点)
    2.利用FD替换响应(时机比较靠前)
       FD就是个代{过}{滤}理,让网页数据都从FD过
       然后就是拦截 + 注入  +放过

    QQ截图20210805203845.jpg
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 879 天

    [LV.10]以坛为家III

    30

    主题

    732

    回帖

    7356

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    积分
    7356

    荣誉开发者油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-8-5 20:39:52 | 显示全部楼层
    哥哥好棒
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    昨天 08:59
  • 签到天数: 532 天

    [LV.9]以坛为家II

    148

    主题

    420

    回帖

    1215

    积分

    版主

    积分
    1215

    油中2周年生态建设者

    发表于 2021-8-5 20:52:45 | 显示全部楼层
    哥哥nb      
    I don't hate programming but the fucking world.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-8-5 22:03:07 | 显示全部楼层
    ggnb!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-8-6 00:09:51 | 显示全部楼层
    本帖最后由 cxxjackie 于 2021-8-6 00:12 编辑

    在部分版本的油猴插件中移除了对GM_addStyle的支持,出于兼容性考虑,不建议使用。可以自己实现一个addStyle函数,示例:
    1. function addStyle(css) {
    2.   const style = document.createElement('style');
    3.   style.type = 'text/css';
    4.   style.innerHTML = css;
    5.   document.head.appendChild(style);
    6. }
    复制代码

    另外append通常是jquery的方法,在原生js中,append可能存在兼容性问题,建议用appendChild代替append。

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2021-8-6 00:38:57 | 显示全部楼层
    cxxjackie 发表于 2021-8-6 00:09
    在部分版本的油猴插件中移除了对GM_addStyle的支持,出于兼容性考虑,不建议使用。可以自己实现一个addStyl ...

    学习了,我一直以为GM_addStyle都有...
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2021-8-6 07:49:34 | 显示全部楼层
    李恒道 发表于 2021-8-6 00:38
    学习了,我一直以为GM_addStyle都有...

    因为这个方法并不涉及浏览器层面的操作,只是语法糖,没有必要专门做成一个API,不过移除后很多脚本出了问题,好像后面油猴又给加回去了,总之很乱,尽量不要用
    已有1人评分油猫币 贡献 理由
    李恒道 + 1 + 1 ggnb!

    查看全部评分 总评分:油猫币 +1  贡献 +1 

    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2021-8-6 10:10:30 | 显示全部楼层
    ggnb!
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情

    2022-8-15 10:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    9

    主题

    80

    回帖

    89

    积分

    初级工程师

    积分
    89

    新人报道油中3周年挑战者 lv1

    发表于 2021-8-6 11:38:13 来自手机  | 显示全部楼层
    楼上就叫专业
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-3-27 10:03
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    1

    主题

    10

    回帖

    12

    积分

    助理工程师

    积分
    12

    新人报道油中2周年

    发表于 2021-8-6 13:31:03 | 显示全部楼层
    ggnb!        
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表