2008-11-23 14 views
14

से वर्तमान टैब/विंडो में एक यूआरएल खोलना मैं फ़ायरफ़ॉक्स एक्सटेंशन बना रहा हूं ... मेन्यूम से वर्तमान टैब में यूआरएल खोलने के लिए जावास्क्रिप्ट क्या होगा?फ़ायरफ़ॉक्स एक्सटेंशन

उदा। मेरी overlay.xul फ़ाइल में मैं निम्न पंक्ति है:

<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/> 

लेकिन फ़ायरफ़ॉक्स में, जब मैं मेनू आइटम पर क्लिक करें, यह खोलता यूआरएल लेकिन यह ब्राउज़र की पूरी लेआउट शिकंजा।

ऐसा करने का सही तरीका क्या है?

उत्तर

9

चारों ओर ब्राउज़िंग करने के बाद, मैंने पाया कि मैं इस के साथ उपरोक्त कोड को बदलने के लिए किया था:

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/> 
+0

एक बात जो मैं नोट करता हूं वह है कि आप एक जावास्क्रिप्ट फ़ंक्शन बनाना चाहते हैं जो इसे संभालता है, बस अगर आप इसे अपने एक्सटेंशन में अन्य क्लिक ईवेंट के लिए उपयोग करना चाहते हैं! – Alex

1

कॉल यह आपके commmand

//open a url current window: 
function openUrl(url) { 
content.wrappedJSObject.location = url; 
newTabBrowser = gBrowser.selectedBrowser; 
newTabBrowser.addEventListener("load", highlight, true); 
} 

//new tab 
function openUrlNewTab(url) { 
var win = Components.classes['@mozilla.org/appshell/window-mediator;1'] 
      .getService(Components.interfaces.nsIWindowMediator) 
      .getMostRecentWindow('navigator:browser'); 
win.gBrowser.selectedTab = win.gBrowser.addTab(url); 
} 
9

पर कार्यों जेएस एक MENUITEM आप openUILinkIn उपयोग कर सकते हैं से। ऐसा लगता है कि काम करता है:

openUILinkIn(url, where); 

जहां हो सकता है: टैब, वर्तमान, खिड़की (और कुछ अन्य शायद ही कभी इस्तेमाल किया विकल्प)

आप क्या कीबोर्ड पर आधारित अलग तरह से व्यवहार करना चाहते हैं संशोधक एक उपयोगकर्ता दबाने है, तो आप किसी अन्य फ़ंक्शन का उपयोग कर सकते हैं जहां ToOpenLink, जो उपयोगकर्ता वरीयताओं और संशोधकों के आधार पर टैब/वर्तमान/विंडो देता है।

openUILinkIn(url, whereToOpenLink(event)); 

इस प्रकार मैं का उपयोग करें:

<menuitem label="Visit homepage" 
      oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/> 

आप की जाँच करने के लिए चाहते हो सकता है आप एक MENUITEM के संदर्भ में नहीं हैं, तो एक और निर्मित एक्सबीएल कि जोड़ने और एक लेबल के लिए hrefs खोलने जोड़ता है: नए टैब में

<label value="google" class="text-link" href="http://google.com/" /> 
+0

आपको इस विधि से जानकारी कहाँ मिली? मैं कुछ वास्तविक दस्तावेज के लिए व्यर्थ खोज रहा हूं कि आप एफएफ एक्सटेंशन में जावास्क्रिप्ट के साथ क्या कर सकते हैं। – Zarkonnen

+0

@Zark https://developer.mozilla.org/ सबसे अच्छी जगह है, हालांकि पहले अपने रास्ते को ढूंढना मुश्किल हो सकता है। Https://developer.mozilla.org/en/Code_snippets बुकमार्क करना हमेशा अच्छा होता है। – MatrixFrog

2
<menuitem label="Visit Report Site" oncommand="var win = Components.classes['@mozilla.org/appshell/window-mediator;1'] 
.getService(Components.interfaces.nsIWindowMediator) 
.getMostRecentWindow('navigator:browser'); win.openUILinkIn('http://www.google.com', 'tab');"/> 

ओपन यूआरएल।

संबंधित मुद्दे