मूल रूप सेमें दी गई तकनीक का उपयोग कर सकते हैं, लेकिन मैं नकली यूआरएल के बजाय 127.0.0.1:0
खोलता हूं। इस दृष्टिकोण के दो फायदे हैं:
- नाम संकल्प प्रयास छोड़ दिया गया है। ठीक है, अगर मैंने मौजूदा यूआरएल खोलने से बचने के लिए नकली यूआरएल सावधानीपूर्वक चुना है, तो नाम संकल्प निश्चित रूप से विफल हो जाएगा। लेकिन इसके लिए कोई ज़रूरत नहीं है, तो क्यों न सिर्फ इस कदम को छोड़ दें?
- कोई सर्वर टीसीपी पोर्ट
0
पर सुनता है। बस 127.0.0.1
का उपयोग करना पर्याप्त नहीं है, क्योंकि यह संभव है कि एक वेब सर्वर क्लाइंट मशीन पर चलता है, और मैं नहीं चाहता कि विस्तार गलती से कनेक्ट हो। तो मुझे एक पोर्ट नंबर निर्दिष्ट करना है, लेकिन कौन सा? पोर्ट 0
सही विकल्प है: RFC 1700 के अनुसार, यह पोर्ट नंबर "आरक्षित" है, यानी, सर्वरों को इसका उपयोग करने की अनुमति नहीं है।
उदाहरण कमांड लाइन अपने विस्तार करने के लिए तर्क abc
और xyz
पारित करने के लिए: (
chrome.windows.onCreated.addListener(function (window) {
chrome.tabs.query({}, function (tabs) {
var args = { abc: null, xyz: null }, argName, regExp, match;
for (argName in args) {
regExp = new RegExp(argName + "=([^\&]+)")
match = regExp.exec(tabs[0].url);
if (!match) return;
args[argName] = match[1];
}
console.log(JSON.stringify(args));
});
});
कंसोल आउटपुट में:
chrome "http://127.0.0.1:0/?abc=42&xyz=hello"
आप इस तरह से background.js में इन तर्कों को पढ़ सकता है एक्सटेंशन के पृष्ठभूमि पृष्ठ का कंसोल):
{"abc":"42","xyz":"hello"}
FYI करें, NPAPI दृष्टिकोण आप वर्णित काम नहीं करेगा क्योंकि प्लगइन एक में चल रहा हो जाएगा:
https://chrome.google.com/webstore/detail/gafgnggdglmjplpklcfhcgfaeehecepg/
स्रोत कोड पर उपलब्ध है पूरी तरह से अलग प्रक्रिया (कमांड लाइन पैरामीटर के साथ क्रोम द्वारा लॉन्च किया गया यह तय करता है)। – smorgan
आप एक साथ गलत और सही हैं। मैंने पहले से ही इस तरह की योजना की कोशिश की है, और विस्तार के साथ अलग वर्तमान प्रक्रिया के बारे में जानकारी प्राप्त करना संभव है। इसका मतलब यह है कि परिणामस्वरूप माता-पिता प्रक्रिया और पेरेंट प्रक्रिया कमांड लाइन के बारे में जानकारी प्राप्त करने का तरीका भी है। – MontyBurns
इसके अलावा मुझे विशेष पृष्ठ क्रोम: // संस्करण मिला। इस पृष्ठ में मुझे सटीक जानकारी है जो मुझे चाहिए - सभी स्विच के साथ कमांड लाइन। मैंने इस पृष्ठ को डीबग करने का प्रयास किया, लेकिन मेरे लिए कुछ भी उपयोगी नहीं पाया। – MontyBurns