मैं गूगल क्रोम एक्सटेंशन के साथ मज़ा आ रहा हूँ, और मैं बस पता है कि कैसे मैं एक चर में मौजूदा टैब का URL स्टोर कर सकते हैं करना चाहते हैं?मैं एक गूगल क्रोम विस्तार से मौजूदा टैब का URL कैसे मिल सकता है?
उत्तर
एक दोस्त ने मेरे सवाल का जवाब देता है।
सबसे पहले, आप टैब एपीआई के लिए अनुमतियां सेट करने है:
chrome.tabs.getSelected(null,function(tab) {
var tablink = tab.url;
});
हाय यहाँ एक गूगल क्रोम नमूना जो ईमेल वर्तमान साइट है:
"permissions": [
"tabs"
]
और यूआरएल स्टोर करने के लिए एक दोस्त को पीछे मूल विचार यह है कि आप क्या चाहते हैं ... सबसे पहले यह पृष्ठ की सामग्री प्राप्त करता है (आपके लिए interessting नहीं) ... बाद में यह यूआरएल (< - अच्छा हिस्सा)
इसके अतिरिक्त यह एक है अच्छा काम करने वाला कोड उदाहरण, जिसे मैं दस्तावेजों को पढ़ने पर दृढ़ता से पसंद करता हूं।
यहां पाया जा सकता है: Email this page
समस्या यह है कि chrome.tabs.getSelected अतुल्यकालिक है। नीचे दिया गया यह कोड आम तौर पर अपेक्षित काम नहीं करेगा।
var tablink;
chrome.tabs.getSelected(null,function(tab) {
tablink = tab.url;
});
console.log(tablink);
समाधान कोड जहां का उपयोग किया जाएगा रैप करने के लिए है: 'tablink' का मान अभी भी जब यह कंसोल के लिए लिखा है क्योंकि getSelected अभी तक कॉलबैक कि मूल्य को रीसेट करता है नहीं निरस्त कर दिया है अपरिभाषित हो जाएगा एक समारोह में मूल्य और इसे चुनने के द्वारा लागू किया गया है। इस तरह आप क्योंकि आपके कोड मूल्य के लिए प्रतीक्षा करने से पहले इसे क्रियान्वित किया जाता है प्रदान की जानी चाहिए, हमेशा एक मूल्य के सेट है की गारंटी है।
कोशिश कुछ की तरह:
chrome.tabs.getSelected(null, function(tab) {
myFunction(tab.url);
});
function myFunction(tablink) {
// do stuff here
console.log(tablink);
}
कोड के लिए धन्यवाद, यह मेरे लिए काम करता है, "टैब" को manifest.json फ़ाइल "अनुमतियों" में अनुमतियों में जोड़ने की आवश्यकता है: [ "टैब" ] –
यह भी एक आकर्षण की तरह काम करता है: [पॉपअप (Google क्रोम एक्सटेंशन) पर वर्तमान विंडो प्राप्त करना] (http://stackoverflow.com/questions/3030738/getting-current-window-on-a-popup-google-chrome-extension) – chemark
और, कैसे प्राप्त करें सभी खुले टैब के लिंक – Enve
अद्यतन:chrome.tabs.getSelected()
विधि अब मान्य नहीं है।
मौजूदा टैब का URL प्राप्त करने की सिफारिश की जिस तरह से chrome.tabs.query()
उपयोग करने के लिए है।
एक उदाहरण उपयोग:
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
});
इसके लिए आवश्यक है कि आप अपने extension manifest में chrome.tabs
API तक पहुंच अनुरोध है कि:
"permissions": [ ...
"tabs"
]
यह ध्यान रखें कि अपने "वर्तमान टैब 'की परिभाषा के लिए महत्वपूर्ण है आपके विस्तार की जरूरतों के आधार पर भिन्न हो सकता है।
क्वेरी में lastFocusedWindow: true
सेट करना उचित है जब आप उपयोगकर्ता की केंद्रित विंडो (आमतौर पर सबसे ऊपर की खिड़की) में वर्तमान टैब तक पहुंचना चाहते हैं।
currentWindow: true
सेट करना आपको उस विंडो में वर्तमान टैब प्राप्त करने की अनुमति देता है जहां आपका एक्सटेंशन का कोड वर्तमान में निष्पादित हो रहा है। उदाहरण के लिए, इस उपयोगी अपने विस्तार एक नई विंडो/पॉपअप (बदलते फोकस) बनाता है, लेकिन अभी भी खिड़की जहां विस्तार से चलाया गया था टैब जानकारी का उपयोग करना चाहता है हो सकता है।
मैं क्योंकि गूगल मामलों से जुड़ी जानकारी इस उदाहरण में lastFocusedWindow: true
उपयोग करने के लिए, चुना है जो currentWindow
may not always be present में।
लिए आप अपने टैब क्वेरी गुण यहां परिभाषित के किसी भी उपयोग को परिष्कृत करने के लिए स्वतंत्र हैं: chrome.tabs.query
यूआरएल हमेशा अनिर्धारित क्यों है? – nnm
यदि यूआरएल अनिर्धारित है तो क्रोम से अपने एक्सटेंशन को पुनः लोड करने का प्रयास करें: // एक्सटेंशन यह एक्सटेंशन की कॉन्फ़िगरेशन को फिर से लोड करेगा और नए जोड़े गए "टैब" अनुमति को लागू करेगा। – flashbackzoo
यूआरएल अनिर्धारित है क्योंकि http://stackoverflow.com/questions/28786723/why-doesnt-chrome-tabs-query-return-the-tabs-url-when-called-using-requirejs (उत्तर: अपने देव उपकरण विंडो को बंद करें या lastFocusedWindow के बजाए वर्तमान विन्डो में बदलें) – kspearrin
context menu api
का उपयोग कर उन लोगों के लिए, डॉक्स कैसे टैब में जानकारी प्राप्त करने पर तुरंत स्पष्ट नहीं हैं।
chrome.contextMenus.onClicked.addListener(function(info, tab) {
console.log(info);
return console.log(tab);
});
आप this पर जांच करने के लिए है।
एचटीएमएल
<button id="saveActionId"> Save </button>
manifest.json
"permissions": [
"activeTab",
"tabs"
]
जावास्क्रिप्ट
नीचे कोड बटन के हिस्से के रूप में JSON वस्तु में सक्रिय विंडो के सभी यूआरएल की बचत होगी पर क्लिक करें।
var saveActionButton = document.getElementById('saveActionId');
saveActionButton.addEventListener('click', function() {
myArray = [];
chrome.tabs.query({"currentWindow": true}, //{"windowId": targetWindow.id, "index": tabPosition});
function (array_of_Tabs) { //Tab tab
arrayLength = array_of_Tabs.length;
//alert(arrayLength);
for (var i = 0; i < arrayLength; i++) {
myArray.push(array_of_Tabs[i].url);
}
obj = JSON.parse(JSON.stringify(myArray));
});
}, false);
सक्रिय विंडो पर यूआरएल की बचत के लिए मेरा क्रोम एक्सटेंशन https://chrome.google.com/webstore/detail/tabstore-plugin/jngplpdonggccbjlmbphlbancacmpmpp –
अन्य उत्तरों मानते हैं कि आप इसे पॉपअप या पृष्ठभूमि स्क्रिप्ट से जानना चाहते हैं।
मामले में आप एक सामग्री स्क्रिप्ट से वर्तमान URL जानना चाहते हैं, मानक जे एस तरीका लागू होता है:
window.location.toString()
आप इस तरह के मेजबान के रूप में यूआरएल के अलग अलग हिस्सों में पहुंचने के लिए window.location
के गुणों का उपयोग कर सकते प्रोटोकॉल या पथ।
थंब अप, सबसे सरल समाधान है। – dalvarezmartinez1
ग्रेट उत्तर। मैं चाहता था कि मैं "stackoverflow.com" पर हूं या नहीं, यह देखने के लिए 'window.location.host' था। – Salyangoz
- 1. कोई गूगल गूगल क्रोम
- 2. खिड़कियों क्रोम ताज़ा टैब 0 (या मौजूदा टैब) कमांड लाइन
- 3. एक सुसंगत URL से संसाधन सर्व: गूगल Pagespeed बनाम फेसबुक
- 4. एक टैब के भीतर क्रोम ऐप खोलें
- 5. मैं विस्तार के सामग्री स्क्रिप्ट से अपना क्रोम एक्सटेंशन का पॉपअप पेज कैसे खोल सकता हूं?
- 6. वीएस 2010: मुझे "अगला टैब", "पिछला टैब" कीबोर्ड शॉर्टकट कैसे मिल सकता है?
- 7. Google क्रोम टैब की तरह टैब नियंत्रण?
- 8. विस्तार विकल्प पृष्ठ से क्रोम: // क्रोम/एक्सटेंशन से लिंक
- 9. लाइन द्वारा जावास्क्रिप्ट डीबगिंग लाइन गूगल क्रोम
- 10. कैसे साथ काम करते हैं मैं गूगल क्रोम
- 11. मैं एक jpg फ़ाइल की गहराई कैसे मिल सकता है?
- 12. क्रोम इनलाइन विस्तार
- 13. jQuery spritely और गूगल क्रोम
- 14. jQuery यूआई टैब का उपयोग करना। एक टैब पैनल लोड करने के बजाय मैं एक टैब को URL से लिंक कैसे करूं?
- 15. क्या मुझे एक अनुरोध हैंडलर के बाहर मेरी रैक सेवा का मूल URL मिल सकता है?
- 16. निकालें एक तार से भाग जाती है, या, "मैं कैसे रास्ते से बाहर \ मिल सकता है?"
- 17. मैं एक मौजूदा तत्व
- 18. मौजूदा jQuery UI विजेट का विस्तार कैसे करें?
- 19. स्कैला में मौजूदा गणना वस्तुओं का विस्तार कैसे करें?
- 20. मैं कैसे डेल्फी XE2 SSL पर गूगल कैलेंडर एपीआई से बात करने के लिए मिल सकता है?
- 21. गूगल क्रोम एक: दौरा किया पृष्ठभूमि काम नहीं कर रहा
- 22. URL
- 23. मैं ActiveAdmin का डिफ़ॉल्ट URL कैसे बदल सकता हूं?
- 24. मुझे एक महीने का आखिरी दिन कैसे मिल सकता है?
- 25. मैं एक फ़ाइल का चयन करने के लिए मौजूदा Explorer.exe उदाहरण कैसे सेट कर सकता हूं?
- 26. मैं विंडोज़ में सक्रिय Google क्रोम टैब का यूआरएल कैसे प्राप्त करूं?
- 27. मैं कैसे जांच सकता हूं कि jquery टैब का उपयोग करके कौन से टैब सक्रिय हैं?
- 28. एक पीआईएल डिकोडर का विस्तार
- 29. क्रोम टैब की आईडी कैसे प्राप्त करें?
- 30. URL के साथ JQuery टैब खोलना, और टैब पर URL पर हैश जोड़ना
कोड का दूसरा भाग पॉपअप फ़ाइल के मामले में है – Axiol
इसका कारण पॉपअप (पृष्ठ क्रिया, ब्राउज़र क्रिया) के लिए क्यों है क्योंकि यह पहले पैरामीटर में "शून्य" में भेज रहा है। http://code.google.com/chrome/extensions/tabs.html#method-get चयनित दस्तावेज़ों का पहला पैरामीटर विंडो आईडी है, यदि आप इसे विकल्पों में या पृष्ठभूमि पृष्ठ में उपयोग करना चाहते हैं, तो आपको इसकी आवश्यकता होगी विंडो आईडी में डालने के लिए या आपको वर्तमान टैब को आपके दृश्य को अनदेखा कर दिया जाएगा, विकल्प क्रमशः। –
हाँ यह काम करता है, लेकिन यह सुनिश्चित नहीं है कि chrome.tabs.getSelected विधि संदर्भ दस्तावेज़ में क्यों नहीं मिल सकती है। – swimmingfisher