2011-02-24 26 views
5

मेरे पास एक निश्चित UI तत्व है, जिसे क्लिक करने पर किसी अन्य URL पर नेविगेट करना चाहिए। मैंने माउस को ईवेंट को संभालने का प्रयास किया और इस तरह कुछ निष्पादित किया: System.Windows.Browser.HtmlPage.Window.Navigate (नया उरी ("http://google.com"), "_blank");ब्राउज़र। HTMLPage.Window.Navigate अवरुद्ध है लेकिन हाइपरलिंक बटन नहीं है - क्यों?

हालांकि, यह ब्राउज़र द्वारा अवरुद्ध हो जाता है (मैंने क्रोम और फ़ायरफ़ॉक्स दोनों को आजमाया) जब तक कि मैं पॉपअप अवरोधक को अक्षम नहीं करता। मैंने कुछ शोध किया और ऐसा लगता है कि ब्राउज़र नेविगेशन को अवरुद्ध करता है जो उपयोगकर्ता इंटरैक्शन के परिणामस्वरूप नहीं होता है और जहां तक ​​ब्राउज़र का संबंध है, इस नेविगेशन को एक प्लगइन (सिल्वरलाइट) द्वारा शुरू किया जाता है, न कि उपयोगकर्ता।

ठीक है, समझ में आता है। लेकिन फिर मैंने इसके बजाय एक हाइपरलिंक बटन का उपयोग करने की कोशिश की और इसे अवरुद्ध नहीं किया गया था।

मुझे आश्चर्य है कि इन दो दृष्टिकोणों को ब्राउज़र से अलग क्यों मिलता है। कोई उपाय?

एक

मैं वास्तव में नेविगेशन एक HyperLinkButton साथ यूआई ट्रिगर लपेटकर द्वारा समस्या को हल काम किया है, लेकिन मैं अभी भी बहुत उत्सुक हूँ ...

+0

IE9 में, HyperlinkButton ही एक मुद्दा है: http://stackoverflow.com/questions/14678235/silverlight-hyperlinkbutton-not-working-at-all आप या तो जोड़ने के लिए 'जरूरत <मेटा http-समतुल्य = "x-ua-compatible" सामग्री = "आईई = 8"> 'या '' –

उत्तर

4

मैं एक फैंसी कॉर्पोरेट उद्धरण खींच सकते हैं और कहने के लिए जा रहा हूँ "यह है सुविधा, एक बग नहीं। "

सिल्वरलाइट टीम स्पष्ट रूप से सुरक्षा के बारे में चिंतित है। वे आपके जैसे पागल haxorz नहीं चाहते हैं और मैं अपने ऐप्स के साथ पागल चीजें करना चाहता हूं - आपको पता है, ब्राउज़र ब्राउज़र का एक गुच्छा पॉप अप करने जैसे लोगों को Zombo.com पर रूटिंग करना। बस गाना बजानेवालों की कल्पना करो! ज़ोंबो!

Summarized from their documentation: वे चाहते हैं कि हम केवल अपने आवेदन के बाहर जाने के लिए हाइपरलिंक बटन का उपयोग करें। वास्तव में, वे extra step गए, और हमारी सेटिंग्स के आधार पर, यदि हम एक बाहरी पृष्ठ पर नेविगेट करते हैं - यहां तक ​​कि एक हाइपरलिंक बटन से भी वे हमारे लिए सुरक्षा अपवाद फेंक देंगे। कितना अच्छा है।

असली सवाल: हाइपरलिंक बटन क्यों और कुछ और नहीं?

केवल एक "चीज़" नेविगेट कर सकते हैं। सिल्वरलाइट का परीक्षण करते समय यह माइक्रोसॉफ्ट के लिए समय बचाता है। यह एक चीज आंतरिक एक्सएएमएल पृष्ठों और बाहरी वेब पृष्ठों दोनों पर नेविगेट कर सकती है - साथ ही साथ सुसंगत भी हो सकती है और नेविगेशन करने का केवल एक ही तरीका हो सकता है।

यह एक UIElement है। यह प्राथमिक दृश्य धागे में चलाने के लिए पसंद के पीछे कोड है। यह ब्राउज़र से वादा कर सकता है कि एक विज़ुअल एलिमेंट कहीं जाना चाहता है। माइक्रोसॉफ्ट अपने सीमित तर्क को उस नियंत्रण में भी डाल सकता है जिसके लिए माउस-क्लिक/कीबोर्ड-इनपुट इवेंट पेड़ की आवश्यकता होती है।

सब कुछ, नियंत्रण को नियंत्रित करके सरल शुरू करना समझ में आता है।

मजेदार सामान! उम्मीद है कि यह आपकी मदद करता है।

+1

समझ में आता है। मैं यह जानने के लिए ध्यान केंद्रित कर रहा था कि ब्राउज़र इन दो नेविगेशन विधियों को अलग-अलग क्यों मानता है कि मैंने यह विकल्प नहीं माना था कि वास्तव में एसएल प्लगइन स्वयं उन्हें अलग-अलग इलाज कर रहा था। धन्यवाद! –

+1

कॉमेडी परिचय के लिए +1 प्राप्त करता है;) –

+0

मुझे zombo.com देखें :( – Terry

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