30

असल में मेरी विंडो पर (जब आप आइकन पर क्लिक करते हैं) इसे टैब के यूआरएल को खोलना और दिखाया जाना चाहिए और इसके बगल में मैं इसे "सेव" कहूंगा, यह इसे स्थानीय स्टोरेज में सहेज लेगा, और प्रदर्शित किया जाएगा सहेजे गए लिंक क्षेत्र में नीचे।यूआरएल प्राप्त करें और इसे सेव करें क्रोम एक्सटेंशन

इस तरह:

alt text http://i42.tinypic.com/dma7x5.png

कुछ बुकमार्क की तरह :)

+1

नोट: यहां सभी उत्तरों 'chrome.tabs.getSelected' का उपयोग करने का सुझाव दे रहे हैं। हालांकि, इस एपीआई विधि को बहिष्कृत कर दिया गया है, आपको इसके बजाय 'chrome.tabs.query' का उपयोग करना होगा - देखें [वर्तमान में मेरे पृष्ठ एक्शन पॉपअप में खोले गए टैब का URL कैसे प्राप्त करें?] (Http://stackoverflow.com/questions/10413911/कैसे-वर्तमान-खोले-टैब-url-in-my-page-action-popup/10417327 # 10417327) –

उत्तर

48

यदि आप ऐसा कुछ करना चाहते हैं, तो आप आसानी से क्रोम एक्सटेंशन API के साथ ऐसा करते हैं। क्षेत्रों के लिए देखने के लिए कर रहे हैं:

अब पहला कदम है अपने popup.html फ़ाइल बनाने और याद करने के लिए है कि यह क्षणिक है, यानी, जब आप ब्राउज़र क्रिया पर क्लिक करते हैं तो यह केवल तब रहता है, जब यह निकलता है (बंद हो जाता है) तो मर जाता है। मैं क्या कहने की कोशिश कर रहा हूं, यदि आपके पास बहुत अधिक गणना है और आप पृष्ठभूमि में ऐसा करना चाहते हैं और पॉपअप बंद होने पर भी होता है, तो सबकुछ background page पर ले जाएं। और आपके पॉपअप में, आप chrome.extension.getBackgroundPage()

अपने पॉपअप.html के भीतर आसानी से पृष्ठभूमि पृष्ठ तक पहुंच सकते हैं, आपको ऐसा करने के लिए वर्तमान टैब का यूआरएल प्राप्त करना होगा, टैब एपीआई एक "getSelected" फ़ंक्शन है जो आपको चयनित टैब के लिए Tab object प्राप्त करने की अनुमति देता है।

तो कुछ इस तरह:

popup.html

<html> 
<body> 
<p id="currentLink">Loading ...</p> 
<hr /> 
<ul id="savedLinks"></ul> 
<script type="text/javascript" src="popup.js"></script> 
</body> 
</html> 

पॉपअप।js

chrome.tabs.getSelected(null, function(tab) { 
    document.getElementById('currentLink').innerHTML = tab.url; 
}); 

कारण है कि आप HTML फ़ाइल में रखना एक नहीं कर सकते Chrome की सीमा जावास्क्रिप्ट हमलों के अपने उपयोगकर्ताओं को बचाने के लिए की है:

इनलाइन स्क्रिप्ट और ईवेंट हैंडलर्स को अनुमति नहीं दी

अब यह आपको ब्राउज़र पृष्ठ के रूप में वर्तमान पृष्ठ के लिए पॉपअप में यूआरएल दिखाने की अनुमति देगा। आपका अगला कदम सरल HTML5 सुविधाओं जैसे स्थानीय स्टोरेज, या वेबडेटाबेस (मेरी राय में बेहतर होगा) का उपयोग करना है। सहेजे गए पृष्ठों को संग्रहीत करने के लिए, फिर आप उन्हें सहेजे गए लिंक पृष्ठ पर प्रस्तुत कर सकते हैं जैसा कि मैंने वर्तमान लिंक के लिए किया है।

शुभकामनाएं!

+0

साथ शुरू करने के लिए बहुत उपयोगी कोड, मैं भंडारण करूँगा, धन्यवाद :) – Jamie

+0

एचटीएमएल 5 वेबडेटाबेस पर एक नज़र डालें (यह आपके परिदृश्य के लिए बेहतर है) –

+4

उपर्युक्त स्क्रिप्ट केवल तभी काम करती है जब आपके पास मैनिफेस्ट में सही अनुमति सेट है: "अनुमतियाँ": [ "टैब" ] – ina

10

वर्तमान यूआरएल पाने के लिए, आप मौजूदा टैब और फिर सब paramenters निकालने के लिए की जरूरत है। वर्तमान टैब उपयोग, chrome.tabs.getSelected() प्राप्त करने के लिए

। फिर, टैब वस्तु से मानकों को लाने का उल्लेख tabs api

अपने कोड स्निपेट इस तरह दिखना चाहिए,

chrome.tabs.getSelected(null, function(tab) { 
    //properties of tab object 
    tabId = tab.id; 
    tabUrl = tab.url; 

    //rest of the save functionality. 
}); 

आप भी अपने एक्सटेंशन के मेनिफेस्ट में "टैब" अनुमति घोषित करने के लिए उपयोग करना होगा टैब एपीआई। उदाहरण के लिए

{ 
    "name": "My extension", 
    ... 
    "permissions": [ 
    "tabs" 
    ], 
    ... 
} 
13

मैं इस उत्तर को अपडेट करना चाहता था, क्योंकि एपीआई बदल गई है।

chrome.tabs.getSelected() विधि अब मान्य नहीं है। मौजूदा टैब का URL प्राप्त करने की सिफारिश की जिस तरह से उपयोग करने के लिए है chrome.tabs.query():

chrome.tabs.query({'active': true}, function (tabs) { 
    var url = tabs[0].url; 
}); 

यह अभी भी आवश्यकता है जब आप अपने एक्सटेंशन प्रकट में chrome.tabs API तक पहुंच अनुरोध है कि:

"permissions": [ ... 
    "tabs" 
] 

आप अधिक पढ़ सकते हैं प्रतिवाद के बारे में यहाँ: chrome.tabs.getSelected()

आशा इस मदद करता है!