我不太确定如何将此代码从书签转换为用户脚本,因为它使用了URL编码字符:
javascript:var%20multiURL="";%20$('div.titlebox').find('ul.subreddits').find('a').each(function()%20{%20multiURL%20+=%20$(this).text().substr(3)%20+%20"+";%20});%20multiURL%20=%20multiURL.substr(0,multiURL.length-1);%20window.open('http://www.reddit.com/r/'+multiURL);void(0);
想法?
答案 0 :(得分:4)
首先,您必须将URL编码的字符转换为常规字符,Jared Farrish具有kindly done并具有一些PHP魔法。如果您将来需要这样做,可以试试online URL encoder/decoder。
这给你这个JavaScript blob:
javascript:var multiURL=""; $('div.titlebox').find('ul.subreddits').find('a').each(function() { multiURL += $(this).text().substr(3) + "+"; }); multiURL = multiURL.substr(0,multiURL.length-1); window.open('http://www.reddit.com/r/'+multiURL);void(0);
格式化并转换为正确的JS:
var multiURL = "";
$('div.titlebox').find('ul.subreddits').find('a').each(function () {
multiURL += $(this).text().substr(3) + "+";
});
multiURL = multiURL.substr(0, multiURL.length - 1);
window.open('http://www.reddit.com/r/' + multiURL);
然后,剩下要做的就是使用用户说明,将其保存在名称以.user.js
结尾的文件中(重要)。
// ==UserScript==
// @name Author's Name
// @namespace Place where file is stored
// @include Place(s) where userscript should run
// ==/UserScript==
var multiURL = "";
$('div.titlebox').find('ul.subreddits').find('a').each(function () {
multiURL += $(this).text().substr(3) + "+";
});
multiURL = multiURL.substr(0, multiURL.length - 1);
window.open('http://www.reddit.com/r/' + multiURL);
请注意,这将在 @include
列出的每个地址处运行,因此您可能需要考虑在相关网页上注入按钮或其他内容,以便它不会不必要地运行。