Comments (28)
head 添加 <link rel="stylish-code-chrome" href="https://userstyles.org/styles/chrome/143298.json" />
然后触发 stylishInstallChrome 事件
var t = document.createEvent("Events");
t.initEvent('stylishInstallChrome', !1, !1, window, null);
document.dispatchEvent(t)
但是
貌似只有userstyles.org 网站下有效
自己模拟了一下 没有成功
from ehtagtranslator.
看了 安装脚本 只添加到他自己网站下
{
"matches": ["http://userstyles.org/*", "https://userstyles.org/*"],
"run_at": "document_start",
"all_frames": false,
"js": ["install.js"]
}
from ehtagtranslator.
http://blog.chinaunix.net/uid-27070210-id-3254046.html
这样 完全由油猴子保存数据 油猴子添加样式 干脆不用stylish
from ehtagtranslator.
突然发现 为什么插件里的 GM方法都是模拟的那?
from ehtagtranslator.
火狐的开发工具能直接看到元素绑定的事件,不知道火狐这边的代码对你有没有用。
连接了这个文件
https://userstyles.org/ui/app.js https://userstyles.org/ui/app.js.map
但是我没有看到具体实现,扩展源代码里好像是有调用,但是看到一句
pref("extensions.stylish.install.allowedDomains", "userstyles.org");
也是限制了只准在userstyles.org安装?
如果用油猴写可能就不用CSS的方式了,能够还原简介里的更多细节,简介调控也更方便。 但是油猴的缺点有 1、很容易因为网站结构变化导致程序代码出错而整个崩溃。 2、每次打开网页都需要重新计算一遍,消耗资源。 3、需要等DOM加载完成,速度较慢,一般会先看到一堆英文。 4、每次更新代码都需要刷新网页,Stylish可以即时生效。
GM模拟是因为油猴里面运行的时候是不会显示任何错误的(黑盒?),这些部分全都是可以用普通的功能完成的,就尽量用普通的代码写,可以在浏览器内直接运行调试看哪里出错了。
这个脚本还好,目前所有的都不需要特殊权限,但是我的其他脚本就有跨域的,必须用GM插件,但是用了这个就没法在浏览器调试,于是我就写了一个仿GM函数,基本囊括了主要功能,检测到没有GM_xmlhttpRequest时就是我浏览器直接运行或者没使用插件的情况,直接用XMLHttpRequest,检测到有GM_xmlhttpRequest时还是继续用插件,不需要为不同调试环境编写不同的代码。
而且用惯了GM_xmlhttpRequest的格式后,原生XMLHttpRequest的写法也会感觉有点麻烦,所以就应用到了其他脚本里面,有跨域需要的时候,只需要开启插件就可以立即使用了。
储存值那一堆也是受了相同的影响,减少将来可能需要插件导致的代码修改工作。但是目前只有PixivUserBatchDownload,为了让储存的密码不要直接在浏览器开发者工具就能看到,用了插件,其他的HTML5的储存完全够用。
from ehtagtranslator.
设置上// @run-at document-start
速度一点也不慢
样式和现在一样 手动生成 然后GM_setValue存起来
如果是ehentai的网站就直接 GM_getValue 把样式取出来 GM_addStyle 把样式设置上
效率上应该和 stylish 一样
不过为了跨域存储数据 GM方法 就必须用黑盒里的了
from ehtagtranslator.
你的意思是也用CSS来替换而不是JS直接修改DOM?
from ehtagtranslator.
嗯 只是 stylish 的工作直接让油猴子干
from ehtagtranslator.
我写了一个
通过GM_addValueChangeListener 甚至可以不刷新页面
from ehtagtranslator.
代码在这里
https://github.com/xioxin/EhTagTranslator/blob/master/EhTagBuilder.user.js
from ehtagtranslator.
https://github.com/Mapaler/EhTagTranslator/invitations
我最近较忙,没时间做,直接把你邀请了,如果有需要的话你可以自己修改。
from ehtagtranslator.
我先完善好了的
from ehtagtranslator.
from ehtagtranslator.
其实我觉得这边的版本应该另外做一个名字,比如叫EhTagTranslator-DirectlyCSSbyJS之类的。这边版本不需要生成JSON,也不需要显示输出CSS文本。只有获取最新数据库生成CSS保存到GM数据库的功能,平时就是直接读取CSS加载到页面。
from ehtagtranslator.
油猴子脚本可以多个文件 模块化开发吗
from ehtagtranslator.
如果分成两个插件 应该就不能共享数据库了把
如果把整个解析脚本copy过来的话维护也很不方便
from ehtagtranslator.
好像不能吧,但是要共享数据库,就可以用油猴的savevalue插件啊,我记得我也是写了模拟版的,需要切换时开启插件即可。
from ehtagtranslator.
油猴可以导入其他脚本,但是不会自动更新导入的其他脚本的。所以想要模块化开发最好用node,然而我不会。
from ehtagtranslator.
你看看这个合并请求 干脆就写一起把
from ehtagtranslator.
我用了GM方法 控制台依旧可以打印日志和错误信息 貌似并没啥影响
from ehtagtranslator.
不要用GM_log那个是不支持了的。用GM插件载入的脚本在运行正常的时候可以正常用console.log打印日志,但是一旦脚本发生错误将什么都不能看见(火狐的油猴,没试过Chrome)。只有用Try Catch内的错误才会显示,找起来特别麻烦。
而代码草稿纸直接运行的脚本会直接显示第几行错误。
from ehtagtranslator.
哦哦 chrome 倒是都能显示错误信息
from ehtagtranslator.
不显示错误信息应该是属于沙盒导致的吧
from ehtagtranslator.
@xioxin 我先修改了一些你的代码。但是目前发现问题就是火狐55下,油猴GM_addStyle失效,E站上什么变化也没有,54还可以用。
因为还不够完善,所以我先在这个分支开发测试。
from ehtagtranslator.
要不要改成自己添加style到head?
from ehtagtranslator.
改成
// @run-at document-idle
后,火狐55可以用
讨论我看不懂 greasemonkey/greasemonkey#2515
只看了油猴文档 https://wiki.greasespot.net/Metadata_Block#.40run-at
from ehtagtranslator.
自己添加可能没有GM_addStyle快
from ehtagtranslator.
你看得懂他们的高端讨论吧,看看是什么意思。
看起来是Fx55某个版本开始突然不能再document-start获取到head了。GM_addStyle的实现方法就是添加到head。
from ehtagtranslator.
Related Issues (20)
- 这个脚本会与熊猫书签不兼容,如果能够改进一下就太好了 HOT 9
- EhTagSyringe加载失败 HOT 5
- EhTagSyringe获取不到翻译库 HOT 2
- 无法加载数据库-github页面上没有显示菜单 HOT 4
- Wiki数据库使用
- 小建议:tag翻译最好增加同时显示原文的功能 HOT 9
- 导入样式出错了。。 HOT 2
- 水楼 2代 HOT 135
- ETS标签翻译功能讨论 HOT 213
- 关于部分tag翻译的改正建议 HOT 11
- E站改版了,点击页面上方的”EhTagTranslator“选项无反应。 HOT 19
- 希望标签编辑栏增加提示 HOT 11
- 建议在EhTagSyringe的sleazyfork的页面描述增加使用方法 HOT 2
- 项目迁移 HOT 45
- ETS 更新 HOT 3
- EhTagSyringe和violentmonkey HOT 1
- Archlinux firefox67 + violentmonkey 使用 EhTagSyringe 遇到问题 HOT 2
- FAKKU聯動Banner導致Tag顯示問題 HOT 2
- Tag开启双语显示后长度过长导致显示问题 HOT 4
- 新的翻译替换方法 HOT 61
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ehtagtranslator.