Wizek'in önerisine dayanarak, kodunuzu bir data- uri'ye koyabilirsiniz.
data:text/html;charset=utf-8,
<html>
<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico">
<script type="text/javascript">
alert('It works!')
</script></html>
Ve hepsini bir yer imi olarak kaydedin. ( Deneyin! Kodu sekme çubuğunuza sürükleyin)
Maalesef yalnızca belirli durumlarda işe yarar (daha fazlası aşağıda).
Nasıl çalışır:
(En azından Chrome'da) javascript: "<html>...your html code here, including a javascript tag that will run when loaded...</html>"
Diğer çözümlerin önerdiği gibi biçimi kullanan bir yer imine benzer . Bu durumda, bulunduğunuz sayfadaki html, yer imi uygulamasındaki html ile değiştirilir , ancak konum aynı kalır ve yer imi uygulamasının kendisi hala bir konuma sahip olmayacağından Chrome bunun için bir favicon kaydedemez.
Buna karşılık, bir data-uri yer imi ile diğer sayfaya gidiyoruz , kendi konumu var ve tarayıcı bunun için bir favicon kaydedebilir. Bunu, yer imlerinizi senkronize ederseniz diğer bilgisayarlarda erişebileceğiniz "Tarayıcınızda bir web sitesi barındırma" olarak düşünün. Her şeyi yerel tutmak istiyorsanız, favicon için url yerine bir base64 görüntüsü de kullanabilirsiniz.
Sınırlamaları vardır.
Tıkladığınızda, geçerli sayfadan çıkar ve sayfayı verilere yükler . Bu nedenle, mevcut sayfayla etkileşime giren kitapçıklar için, yalnızca farklı bir sayfada çalıştırabileceğiniz kod için kullanamazsınız.
Yorumlar için // kullanmayın. Hepsi tek satırda kaydedileceği için / ** / içine alın ve noktalı virgüllerinizi unutmayın
FF'de favicon'u kaydetti, ancak window.open () kullanmak istersem her zaman açılır pencereleri açacak şekilde ayarlayamadım çünkü veri url'leri için varsayılan bir davranışı kaydetmeme izin vermiyor
Örnek olarak:
Bu tekniği kullanarak Icon Generator ile küçük bir Bookmarklet oluşturdum. Bu kodu kullanmak için URL çubuğunuza sürükleyebilir (veya yer imi olarak kaydedebilirsiniz). Bu, kod ve simge için bir giriş alanına sahip basit bir sayfadır ve ardından simgesiyle bir yer imi oluşturur
data:text/html;charset=utf-8,<html><head>
<title>Bookmarklet With Icon Generator</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" ></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
<link rel="shortcut icon" href="https://www.freefavicon.com/freefavicons/objects/plain-thumbs-up-152-237293.png">
</head>
<body>
<div class="container">
<div class="page-header">
<h2>Write your javascript and specify a favicon, then drag the button to your bookmarks bar</div>
</h2>
<a id="bookmarkbutton" href='' ondragend='this.click()' draggable="true" class="btn btn-primary btn-lg" role="button">
Drag me to your bookmarks bar! </a><br /><br />
<div>
<label for="fav_href">Favicon:</label>
<input id="fav_href" value='https://stackoverflow.com/favicon.ico' style='width:100%'></input> </div><br />
<div>
<label for='ta'>Write your JavaScript below</label>
<textarea id="ta" style="width:100%;height:50%">
setTimeout(()=>{ &%2313
alert('hello world'); /*Use this format for comments, use %2523 instead of hash (number sign)*/ &%2313
window.history.back(); &%2313
},200);
</textarea></div>
</div>
<script type = "text/javascript">
fav_href.onchange = ta.onchange = function(){
bookmarkbutton.href = 'data:text/html;charset=utf-8,<html><head>'+
'<link rel="shortcut icon" href="'+ fav_href.value +'">'+
'<script type="text/javascript"> '+ ta.value +'<\/script>';
};
ta.onchange();
</script>
</body>
Başka bir Örnek: Facebook messenger'ı kendi küçük penceresinde açmak için Bookmarklet (tarayıcınız varsayılan olarak açılır pencereleri engelliyorsa çalışmayabilir)
data:text/html;charset=utf-8,
<html>
<link rel="shortcut icon" href="https://facebook.com/images/messengerdotcom/favicon/favicon.ico">
<script type="text/javascript">
url = 'https://www.messenger.com/';
w = 740; h = 700;
x = parseInt( screen.availWidth/2 - w/2 );
y = parseInt( screen.availHeight/2 - h/2 );
nw = window.open(url,'', 'width='+ w +',height='+ h +',top='+ y +',left='+ x);
nw.focus();
setTimeout(()=>{
window.history.back();
window.close();
},200);
</script>
Yer işareti simgelerini almak için diğer Chrome geçici çözümleri:
Yer imleri çubuğunu dışa aktarma, düzenleme ve bu yanıtta açıklandığı gibi yeniden içe aktarma /superuser/212722/how-can-i-add-a-favicon-to-a-bookmarklet-in- Google Chrome
Yer imi uygulamasını bir uzantıya dönüştürme. Artık bir yer imi olmayacak, ancak aynı işleve sahip olacak. İşte bunu sizin için yapan basit bir web sitesi http://sandbox.self.li/bookmarklet-to-extension/ ardından simge dosyasını istediğiniz şekilde değiştirin. Bunun dezavantajı, uzantıların ram kullanmasıdır (basit olanlar için yaklaşık 10mb?), Çok fazla ve az ramınız varsa, bu sizin için çözüm olmayabilir. Ayrıca, bir yer imindeki gibi bir metne sahip olmayacaksınız, yalnızca simgeye sahip olacaksınız.