[c#] इंटरनेट एक्सप्लोरर एक्सटेंशन के विकास के साथ कैसे शुरुआत करें?


Answers

एक और अच्छा तरीका जांचना होगा:

http://www.crossrider.org

यह jquery के साथ जेएस पर आधारित एक ढांचा है जो आपको एक सामान्य जेएस कोड का उपयोग करके आईई, एफएफ और क्रोम के लिए ब्राउज़र एक्सटेंशन विकसित करने देता है। असल में ढांचा सभी बुरा काम करता है और आपको अपने एप्लिकेशन कोड लिखने के साथ छोड़ दिया जाता है।

Question

क्या यहां किसी के पास आईई एक्सटेंशन विकसित करने / अनुभव करने का अनुभव है जो उनके ज्ञान को साझा कर सकता है? इसमें कोड नमूने, या अच्छे लोगों के लिंक, या प्रक्रिया पर दस्तावेज़ीकरण, या कुछ भी शामिल होगा।

मैं वास्तव में ऐसा करना चाहता हूं, लेकिन मैं एक विशाल दीवार को हंसमुख दस्तावेज, लुसी कोड / उदाहरण कोड / इसकी कमी के साथ मार रहा हूं। कोई भी सहायता / संसाधन जो आप पेश कर सकते हैं उसकी सराहना की जाएगी।

विशेष रूप से, मैं एक आईई एक्सटेंशन के भीतर से डीओएम तक पहुंच / कुशलतापूर्वक उपयोग करने के तरीके से शुरू करना चाहता हूं।

संपादित करें, यहां तक ​​कि अधिक जानकारी:

आदर्श रूप में, मैं एक टूलबार बटन लगाऊंगा, जिस पर क्लिक किया गया, एक मेनू पॉप अप किया जिसमें बाहरी साइटों के लिंक शामिल हैं। मैं कुछ स्थितियों के आधार पर पृष्ठ पर डीओएम और संयंत्र जावास्क्रिप्ट तक पहुंचना चाहूंगा।

आईई एक्सटेंशन में जानकारी जारी रखने का सबसे अच्छा तरीका क्या है? फ़ायरफ़ॉक्स / क्रोम / अधिकांश आधुनिक ब्राउज़र में, आप window.localStorage उपयोग करते हैं, लेकिन स्पष्ट रूप से IE8 / IE7 के साथ, यह एक विकल्प नहीं है। शायद एक SQLite डीबी या ऐसा? यह मानना ​​ठीक है कि उपयोगकर्ता के कंप्यूटर पर .NET 4.0 स्थापित किया जाएगा?

मैं स्पाइस आईई का उपयोग नहीं करना चाहता क्योंकि मैं आईई 9 के साथ संगत एक बनाना चाहता हूं। मैंने इस प्रश्न में सी ++ टैग भी जोड़ा है, क्योंकि अगर सी ++ में एक बनाना बेहतर है, तो मैं ऐसा कर सकता हूं।




सी # बीएचओ का विकास एक दर्द-में-गधे है। इसमें बहुत सारे icky COM कोड और पी / कॉल कॉल शामिल हैं।

मेरे पास अधिकतर सी # बीएचओ समाप्त हुआ है, जो आप जो कुछ भी चाहते हैं उसके लिए स्रोत का उपयोग करने के लिए स्वतंत्र हैं। मैं "ज्यादातर" कहता हूं, क्योंकि मैंने कभी भी आईई संरक्षित मोड के तहत एपडाटा को सहेजने का तरीका नहीं बताया है




बिल्ड इवेंट्स टैब में, पोस्ट-बिल्ड इवेंट कमांड लाइन को सेट करें: (x64) नीचे सूचीबद्ध है

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /if "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" /u "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

मैं बिल्ड इवेंट्स टैब चाहता हूं, पोस्ट-बिल्ड इवेंट कमांड लाइन को सेट करें (32 बिट ऑपरेटिंग सिस्टम)

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\gacutil.exe" /if "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /u "$(TargetDir)$(TargetFileName)"    
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"



यह स्पष्ट रूप से हल किया गया है, लेकिन अन्य उपयोगकर्ताओं के लिए, मैं स्पाइसी फ्रेमवर्क की सिफारिश करता हूं । मैंने इसके आधार पर अपना खुद का विस्तार किया है। यह केवल इंटरनेट एक्सप्लोरर 7/8 आधिकारिक का समर्थन करता है, लेकिन मैंने परीक्षण किया कि इंटरनेट एक्सप्लोरर 6-10 (विंडोज एक्सपी से विंडोज 8 उपभोक्ता पूर्वावलोकन) पर और यह ठीक काम करता है । दुर्भाग्यवश नवीनतम रिलीज में कुछ बग थे, इसलिए मुझे उन्हें ठीक करना पड़ा और अपनी खुद की रिलीज की: http://archive.msdn.microsoft.com/SpicIE/Thread/View.aspx?ThreadId=5251




मैं रॉबर्ट हार्वे से सहमत हूं, सी # 4.0 सुविधाओं में सुधार COM इंटरॉप। फिर से लिखने की बेहद जरूरी ज़रूरत में, पुराने सी # कोड का थोड़ा सा है।

http://www.codeproject.com/KB/cs/Attach_BHO_with_C_.aspx

यह एटीएल से बचकर और स्पार्टन COM के साथ जाकर चीजों को सरल बनाने का प्रयास है:

बीएचओ जाने के लिए सी ++ और कॉम






Links