2011-11-10 12 views
5

Tumblr hesabımla bağlantılı birkaç blogum var, ancak bookmarklet her zaman "birincil" blogumu (listedeki ilk) seçiyor.Belirli bir tumblr bloga göndermek için tumblr yer imini nasıl değiştirebilirim?

Yer imini, belirli bir blogu otomatik olarak seçecek şekilde nasıl değiştirebilirim? Birden çok yer işareti bağlantısına sahip olmak istiyorum, ör. . "Blog1 Paylaş" ben elle yazı oluşturmak için hangi blog seçmek zorunda kalmamak için "Blog2 Paylaş"

Standart Tumblr bookmarklet şuna benzer:

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) 
+1

Harika bir soru. Cevabı bilmek isterim. – jnthnclrk

+0

GreaseMonkey komut dosyalarını birlikte kullanacak mısınız? –

+0

Greasemonkey, mobil tarayıcılarda çalışır mı? – jnthnclrk

cevap

1

işareti uygulamasını ver 'example_blog_name'example_blog_name.tumblr.com

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; 
+1

Bunu hiç işe alamadım. – jnthnclrk

+0

@trnsfrmr Hata neydi? İsteğinizle ilettiğiniz sorgu dizesi neydi? Aslında işe yaramadıysa, aslında hiç işe yaramıyordum, çok yapıcı değil. – KyleWpppd

+0

İstek reddedildi, resme bakın: http://imgur.com/TgwtD. @KyleWppd, sizin için çalışıyor mu? – jnthnclrk

1

kullanıcı senaryonun bir arada ve yer işareti için biraz ince ayar kullanılması halinde olan bir 'channel_id' sonrası parametre, burada çözüm değil:

bir UserScript olarak bu yükleyin:

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)); 
    } 
}; 

kaydet bu BLOG_NAME değişkeni düzenledikten sonra yer işareti olarak. Tam olarak açılır listede olduğu gibi yazın. Ayrıca, bir yer imi yapmak için muhtemelen UglifyJS üzerinden çalıştırmanız gerekecektir.

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);