Tampermonkey

分类下相关文章

tampermonkey 触发 vuejs 网页中 input 控件的 v-model 双向同步

在 tampermonkey 模拟自动提交数据 $('input[placeholder="text1"]')[0].value = 1; $('input[placeholder="text2"]')[0].value = 2; $('.submit .btn')[0].click(); 运行之后,总是提示,没有填写数据。。。 看了一下页面中的 js,发现提交部分是用 vuejs 写的,input 的值存储在 vuejs data 的变量中。 理论上,input 是设置了 v-model 双向绑定,数据在填写之后会自动同步到 data 相应变量中。 ...

阅读全文...

tampermonkey 调用三方域名下的 HTTP 接口

示例 // @require https://cdn.staticfile.org/jquery/1.9.1/jquery.min.js // @grant GM_xmlhttpRequest // @connect sunzhongwei.com GM_xmlhttpRequest ( { method: "GET", url: "http://xxx.sunzhongwei.com/api/get_something", onload: function (response) { ...

阅读全文...

tampermonkey 中使用 jQuery 模拟鼠标点击

例如点击一个按钮 $('.btn-wrap a')[0].click(); 注意 $('.btn-wrap a').click(); 在 chrome console 中可以触发 vuejs 的 click 事件,但是在 tampermonkey 中无法触发。 修改成 $('.btn-wrap a')[0].click(); 即可。 直接模拟点击比修改属性好在哪里 例如,勾选一个 checkbox 勾选框,可以这样做 $($('input[name=qa]')[0]).prop('checked', true); 但是,如果目标网站是用的 vuejs 之类的,在 input 上绑定了各 ...

阅读全文...

tampermonkey 当前页面跳转后没有触发新页面对应逻辑

现象 页面 A: https://www.sunzhongwei.com/#/coding 页面 B: https://www.sunzhongwei.com/#/sleeping 页面 B 的内嵌 iframe 页面 C: https://www.sunzhongwei.com/dreaming 对页面 C 做了 tamermonkey 规则,即跳转到页面 A: window.top.location.href = 'https://www.sunzhongwei.com/#/coding'; 但是跳转之后,页面 A 对应 tampermonkey 逻辑并没有执行 if (window ...

阅读全文...

tampermonkey 作用于页面内 iframe 时,将页面地址修改的方法

正确的做法 window.top.location.href = 'https://www.sunzhongwei.com'; 错误的做法 window.location.href = 'https://www.sunzhongwei.com'; 这样只会修改 iframe 的页面内容,而其宿主页面并不会改变。 查看页面 frame 层级 Chrome - Application - Frames ...

阅读全文...

终止当前正在运行的 tampermonkey 脚本

例如,我要遍历一个 list,若其中一行包含某个状态,则跳转到下一页。 实现方法是在修改 window.location.href 之后,抛出个异常,即可终止当前 tampermonkey 脚本。 $('li').each(function (index, item) { var url = base_url + $(item).attr('href'); var spans = $(item).find('something2'); if ($(spans[2]).text().trim() != '三个广告牌') { GM_log(url); ...

阅读全文...

tampermonkey 获取页面 cookie

function getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } ...

阅读全文...

tampermonkey $ is not defined

原页面中已引入 jQuery, 但是 tampermonkey 编辑器中总是提示 $ is not defined 虽然不影响实际运行,但是看上去非常不爽。 在代码头部插入 var $ = unsafeWindow.jQuery; 即可解决。 另一种情况,确实是没有引入 jQuery 例如, unsafeWindow.jQuery 也是 null,说明页面并没有引入 jQuery。 这时就需要在 tampermonkey 中指定引入 jQuery。例如: // @require https://cdn.staticfile.org/jquery/3.3.1/jquery.min ...

阅读全文...

GM_log is not defined

由于新建的 Tampermonkey 脚本,默认设置了 // @grant none 所以,调用 GM_log('Hello World!');会报错 GM_log is not defined 两种解决方法: 增加 // @grant GM_log 去掉 grant none 这行配置。TM 会自动判断脚本中需要使用那些函数。 我虽然倾向于使用第二种方式,因为省事。但是实际使用中发现,这种方式经常报错。。。逼得我只能使用第一种方式。。。 ...

阅读全文...

近期节日

2018年11月17日 国际大学生节
2018年11月20日 国际儿童日
2018年11月21日 世界问候日
2018年11月22日 小雪
2018年11月22日 感恩节
2018年12月01日 世界艾滋病日
2018年12月03日 国际残疾人日
2018年12月07日 大雪
2018年12月09日 "一二九"运动纪念日
2018年12月09日 世界足球日
2018年12月10日 世界人权日
2018年12月12日 西安事变纪念日
查看更多节日