paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
阅读:1739回复:5

想问一下怎么把一个油猴脚本打包成扩展呢?

楼主#
更多 发布于:2020-11-17 10:34
我有一个油猴脚本,将页面的attribute修改编辑,如果用油猴脚本管理器加载就会只加载一次,而chrome系的浏览器可以直接拖进去当扩展用,会一直加载修正
paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
1楼#
发布于:2020-11-19 12:25
taoww:没看太明白。“会一直加载修正”是什么意思?回到原帖
就是会一直执行这个脚本中替换attribute的命令,典型就是同样类似的命令,adguard就会一直对每个元素执行,而ubo就只会加载一次,体现在贴吧上就是UBO对链接的修改无效了
paul_guo
小狐狸
小狐狸
  • UID45016
  • 注册日期2014-03-13
  • 最后登录2024-04-11
  • 发帖数44
  • 经验52枚
  • 威望0点
  • 贡献值46点
  • 好评度1点
2楼#
发布于:2020-11-20 11:33
taoww:说明你的代码写得不严谨,没有考虑到页面DOMContentLoaded/load事件后再动态增改的内容。
严谨点就用Mutation Observer API监听页面变化,想偷点懒就用setTimeout/setInterval反复执行
回到原帖
其实这脚本也不是我写的,我只是看明白了他在做什么。。。
我曾经尝试过让这个脚本拖到最后运行,但感觉效果也不太行,您提到那个API我百度了一下用法,看的不是很懂
// ==UserScript==
// @name           Link Target 'blank' to removal
// @namespace      armeagle.nl
// @include        *
// @exclude        http://webmail.cpanel.your-webhost.nl/*
// @exclude        *armeagle.nl*
// @version 0.0.1.20140705065616
// @description Remove target blank from all links
// ==/UserScript==
 
if (window.top == window) {
    var ahrefs = document.querySelectorAll('a[target]');
    for ( a_ind = 0; a_ind < ahrefs.length; a_ind++ ) {
        var a = ahrefs[a_ind];
        a.removeAttribute('target');
    }
 
    // remove base target tag
    var bases = document.querySelectorAll("base[target]");
    for (ind = 0; ind < bases.length; ind++) {
        var base = bases[ind];
        base.removeAttribute('target');
    }
}






这脚本是这样的如果要用那个API,是在IF函数之前再嵌套IF吗
游客

返回顶部