Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何修改tumblr bookmarklet以发布到特定的tumblr博客?_Javascript_Blogs_Bookmarklet_Tumblr - Fatal编程技术网

Javascript 如何修改tumblr bookmarklet以发布到特定的tumblr博客?

Javascript 如何修改tumblr bookmarklet以发布到特定的tumblr博客?,javascript,blogs,bookmarklet,tumblr,Javascript,Blogs,Bookmarklet,Tumblr,我有几个博客链接到我的Tumblr帐户,但总是选择我的“主要”博客(列表中的第一个) 如何修改bookmarklet,使其自动选择特定的博客?我希望有多个bookmarklet链接,例如“在blog1上共享”、“在blog2上共享”,这样我就不必手动选择要在其中创建帖子的博客 默认Tumblr如下所示: javascript: var d = document, w = window, e = w.getSelection, k = d.getSelection,

我有几个博客链接到我的Tumblr帐户,但总是选择我的“主要”博客(列表中的第一个)

如何修改bookmarklet,使其自动选择特定的博客?我希望有多个bookmarklet链接,例如“在blog1上共享”、“在blog2上共享”,这样我就不必手动选择要在其中创建帖子的博客

默认Tumblr如下所示:

javascript: var d = document,
    w = window,
    e = w.getSelection,
    k = d.getSelection,
    x = d.selection,
    s = (e ? e() : (k) ? k() : (x ? x.createRange().text : 0)),
    f = 'http://www.tumblr.com/share',
    l = d.location,
    e = encodeURIComponent,
    p = '?v=3&u=' + e(l.href) + '&t=' + e(d.title) + '&s=' + e(s),
    u = f + p;
try {
    if (!/^(.*\.)?tumblr[^.]*$/.test(l.host)) throw (0);
    tstbklt();
} catch (z) {
    a = function () {
        if (!w.open(u, 't', 'toolbar=0,resizable=0,status=1,width=450,height=430')) l.href = u;
    };
    if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0);
    else a();
}
void(0)

为bookmarklet提供一个
'channel\u id'
post参数,该参数是
example\u blog\u name.tumblr.com中的
'example\u blog\u name'

javascript: var d = document,
    w = window,
    e = w.getSelection,
    k = d.getSelection,
    x = d.selection,
    s = (e ? e() : (k) ? k() : (x ? x.createRange().text : 0)),
    f = 'http://www.tumblr.com/share',
    l = d.location,
    e = encodeURIComponent,
    c = 'example_blog_name',
    p = '?v=3&u=' + e(l.href) + '&t=' + e(d.title) + '&s=' + e(s) + '&channel_id=' + e(c),
    u = f + p;

结合使用用户脚本和对bookmarklet进行一些调整,以下是您的解决方案:

将此安装为:


好问题。我很想知道答案。您愿意同时使用GreaseMonkey脚本吗?GreaseMonkey在移动浏览器上工作吗?添加标记的后续操作:@trnsfrmr错误是什么?与请求一起传递的查询字符串是什么?“我一点也不能让它工作”并不是很有建设性,如果你真的想让它工作的话。我的请求被拒绝了,请看图片:@KyleWppd,对你有用吗?@trnsfrmr你能粘贴你实际发送的请求吗?Als您必须登录并能够发布到
频道id
/example\u blog\u name才能获得403。啊,我没有登录。一旦登录到Tumblr帐户,它就会工作。嗯,我想问题是要能处理多个Tumblr账户。必须登录才能切换,这是一个非常烦人的工作流程。@jnthncrk:不是多个帐户,而是多个博客(都在同一个帐户上)。
var selectOption = function (elem, value) {
    var options = elem.options;
    for(var i = 0; i < options.length; i++){
        if(options[i].innerHTML === value){
            elem.selectedIndex = i;
        }
    }
};

window.onload = function (){
    if(location.href.indexOf('tumblr.com/share') !== -1){
        selectOption(document.getElementById('channel_id'), location.hash.slice(1));
    }
};
javascript: var BLOG_NAME = 'Test',
    d = document,
    w = window, 
    e = w.getSelection,
    k = d.getSelection,
    x = d.selection,
    s = (e ? e() : (k) ? k() : (x ? x.createRange().text : 0)),
    f = 'http://www.tumblr.com/share',
    l = d.location,
    e = encodeURIComponent,
    p = '?v=3&u=' + e(l.href) + '&t=' + e(d.title) + '&s=' + e(s),
    u = f + p;
try {
    if (!/^(.*\.)?tumblr[^.]*$/.test(l.host)) throw (0);
    tstbklt();
} catch (z) {
    a = function () {
        if (!w.open(u + '#' + BLOG_NAME, 't', 'toolbar=0,resizable=0,status=1,width=450,height=430')) l.href = u;
    };
    if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0);
    else a();
}
void(0);