2008-09-20 18 views
7

मैं निम्नलिखित JavaScript कोड का उपयोग कर रहा:एक फ़ायरफ़ॉक्स जावास्क्रिप्ट बुकमार्क समस्या

<script language="JavaScript1.2" type="text/javascript"> 
function CreateBookmarkLink(title, url) { 
    if (window.sidebar) { 
     window.sidebar.addPanel(title, url,""); 
    } else if(window.external) { 
     window.external.AddFavorite(url, title); } 
    else if(window.opera && window.print) { 
     return true; } 
} 
</script> 

यह Firefox और IE के लिए बुकमार्क बनाने होंगे। लेकिन फ़ायरफ़ॉक्स के लिए लिंक मुख्य स्क्रीन में प्रदर्शित होने के बजाय ब्राउज़र के साइडपैन में दिखाई देगा। मुझे व्यक्तिगत रूप से यह बहुत परेशान लगता है और मैं एक बेहतर समाधान की तलाश में हूं। साइड पैनल में नहीं दिखने के लिए मैन्युअल रूप से बुकमार्क को संपादित करना संभव है, लेकिन इसके लिए अतिरिक्त चरणों की आवश्यकता है। मैं सिर्फ लोगों को एक पृष्ठ बुकमार्क करने में सक्षम होना चाहता हूं (जिसमें यूआरएल में बहुत सारी जीईटी जानकारी है जिसका उपयोग एक निश्चित योजना बनाने के लिए किया जाता है) आसान तरीका है।

मुझे डर है कि संभवतः फ़ायरफ़ॉक्स को मुख्य स्क्रीन में पृष्ठ प्रस्तुत करना संभव नहीं होगा (जैसा कि इस विषय को गुगल करने के परिणामस्वरूप व्यावहारिक रूप से उपयोग करने योग्य नहीं है), लेकिन मुझे कुछ याद आ गया होगा। अगर किसी के पास कोई विचार है तो यह संभव है, या यदि कोई कामकाज है, तो मुझे इसके बारे में सुनना अच्छा लगेगा।

+0

वैसे, 'window.opera && window.print' ओपेरा> v6 को लक्षित करने लगता है।
और 'भाषा' विशेषता को बहिष्कृत किया गया है और घोषित नहीं किया जाना चाहिए: http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2 –

उत्तर

4

मुझे लगता है कि फ़ायरफ़ॉक्स के लिए यह एकमात्र समाधान है ... मेरे पास उस क्रिया के लिए एक बेहतर कार्य है, यह ओपेरा के लिए भी काम करता है और अन्य "असमर्थित" ब्राउज़र के लिए एक संदेश दिखाता है।

<script type="text/javascript"> 
function addBookmark(url,name){ 
    if(window.sidebar && window.sidebar.addPanel) { 
     window.sidebar.addPanel(name,url,''); //obsolete from FF 23. 
} else if(window.opera && window.print) { 
     var e=document.createElement('a'); 
     e.setAttribute('href',url); 
     e.setAttribute('title',name); 
     e.setAttribute('rel','sidebar'); 
     e.click(); 
} else if(window.external) { 
     try { 
      window.external.AddFavorite(url,name); 
     } 
     catch(e){} 
} 
else 
     alert("To add our website to your bookmarks use CTRL+D on Windows and Linux and Command+D on the Mac."); 
} 
</script> 
+0

के रूप में भी जोड़ते हैं तो आप सही हैं। एक साइड पैनल में खुलने के बिना फ़ायरफ़ॉक्स में बुकमार्क में कोई पृष्ठ जोड़ने का कोई तरीका नहीं है। –

+0

ओपेरा में यह कोड उपयोगकर्ता को लिंक पेज पर रीडायरेक्ट करता है। –

+0

यदि आपके पास आईडी = "साइडबार" वाला कोई तत्व है, तो यह कोड तोड़ देगा: http://stackoverflow.com/questions/17747578/uncaught-typeerror-object-htmldivelement-has-no-method-addpanel – reikyoushin

0

आप के लिए

if (window.sidebar) 

एक विशेष मामले के लिए और फिर एक शाखा है 'शेष' - पहली शाखा में नहीं फ़ायरफ़ॉक्स भूमि होगा और इसलिए केवल पैनल जोड़ सकता हूँ?

+0

मेरा मतलब क्या है - इसके बजाए लिखने का 'और अगर (window.external)' नया करें तो यदि आप इसे बुकमार्क –

0

Hojou,

ऐसा लगता है कि Firefox के लिए बुकमार्क जोड़ने के लिए एक ही रास्ता है। तो एफएफ को पहली शाखा में कुछ भी होने के लिए जमीन की जरूरत है। मैंने कुछ और गुगल किया लेकिन मुझे वास्तव में यह विचार मिल रहा है कि एफएफ में सही ढंग से पता लगाना असंभव है ...

7

फ़ायरफ़ॉक्स के लिए किसी पृष्ठ को बुकमार्क के लिए किसी भी जावास्क्रिप्ट को स्क्रिप्ट द्वारा सेट करने की आवश्यकता नहीं है, केवल शीर्षक वाला एक एंकर टैग और rel = "साइडबार" इस कार्यक्षमता

<a href="http://www.google.com" title="Google" rel="sidebar">Bookmark This Page</a> 

मैं FF9 और उसके काम कर ठीक पर यह परीक्षण किया है कर सकते हैं।

आप लिंक पर क्लिक करते, फायरफॉक्स एक संवाद बॉक्स नई बुकमार्क खुल जाएगा और यदि आप तो साइड बार पर इस बुकमार्क लोड नहीं करना चाहते हैं संवाद बॉक्स से साइडबार में अन-चेक लोड इस बुकमार्क।

+0

+1 धन्यवाद, यह मुझे बचाया .. लेकिन एक और सामान्य तरीका यहां पाया जा सकता है: http://stackoverflow.com/questions/17747578/uncaught-typeerror-object-htmldivelement-has-no-method-addpanel – reikyoushin