Wizek के सुझाव के आधार पर आप अपना कोड डेटा- यूआरआई में डाल सकते हैं।
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>
और एक बुकमार्क के रूप में उस सभी को बचाएं। ( इसे आज़माएं! कोड को अपने टैब बार में खींचें)
दुर्भाग्य से यह केवल कुछ मामलों (अधिक नीचे) के लिए काम करता है।
यह काम किस प्रकार करता है:
(कम से कम क्रोम में) यह एक बुकमार्कलेट के समान है javascript: "<html>...your html code here, including a javascript tag that will run when loaded...</html>"
जो अन्य समाधानों की तरह प्रारूप का उपयोग करता है । उस स्थिति में, आप जिस पेज पर हैं, उसके HTML को बुकमार्कलेट से html द्वारा बदल दिया जाएगा , लेकिन स्थान वही रहता है और बुकमार्कलेट का स्थान अभी भी नहीं होगा, इसलिए Chrome इसके लिए फ़ेविकॉन नहीं बचा सकता है।
इसके विपरीत, डेटा-यूरी बुकमार्क के साथ हम दूसरे पृष्ठ पर जाते हैं , इसका अपना स्थान है, और ब्राउज़र इसके लिए एक फ़ेविकॉन बचा सकता है। इसे "अपने ब्राउज़र में एक वेबसाइट होस्टिंग" के रूप में सोचें, जिसे आप अपने बुकमार्क को सिंक करने पर अन्य कंप्यूटरों में एक्सेस कर पाएंगे। यदि आप सब कुछ स्थानीय रखना चाहते हैं, तो आप एक url के बजाय फ़ेविकॉन के लिए एक बेस 64 छवि का उपयोग कर सकते हैं।
इसकी सीमाएँ हैं।
जब आप इसे क्लिक करते हैं, तो यह वर्तमान पृष्ठ को छोड़ देता है और पृष्ठ को डेटा में लोड करता है । इसलिए आप इसका उपयोग उन पुस्तिकाओं के लिए नहीं कर पाएंगे जो वर्तमान पृष्ठ के साथ परस्पर क्रिया करती हैं, केवल उस कोड के लिए जिसे आप किसी भिन्न पृष्ठ में निष्पादित कर सकते हैं।
टिप्पणियों के लिए // का उपयोग न करें। चूंकि यह सब एक पंक्ति में सहेजा जाएगा, उन्हें / ** में लपेटें और अपने अर्धविरामों को न भूलें
FF में इसने favicon को बचाया, लेकिन मैं इसे हमेशा पॉपअप विंडो खोलने के लिए सेट नहीं कर पा रहा था अगर मैं window.open () का उपयोग करना चाहता हूं क्योंकि यह मुझे डेटा यूआरएल के लिए एक डिफ़ॉल्ट व्यवहार को बचाने की अनुमति नहीं देता है
उदहारण के लिए:
इस तकनीक का उपयोग करके मैंने आइकन जेनरेटर के साथ एक छोटा सा बुकमार्कलेट बनाया। आप इस कोड को अपने URL बार में खींच सकते हैं (या इसे बुकमार्क के रूप में सहेज सकते हैं) इसका उपयोग करने के लिए। यह कोड के लिए और आइकन के लिए इनपुट क्षेत्र के साथ एक सरल पृष्ठ है, और फिर आइकन के साथ एक बुकमार्कलेट उत्पन्न करता है
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>
एक अन्य उदाहरण: इसमें फेसबुक मैसेंजर खोलने के लिए बुकमार्कलेट स्वयं की छोटी खिड़की है (यदि आपका ब्राउज़र डिफ़ॉल्ट रूप से पॉपअप को अवरुद्ध करता है तो काम नहीं कर सकता है)
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>
बुकमार्क आइकन प्राप्त करने के लिए अन्य क्रोम वर्कअराउंड: