2012-09-13 14 views
5

से जावास्क्रिप्ट अलर्ट रोकें Im वेब ब्राउजर नियंत्रण के साथ वीएस 2010 सी # में एक विंडोज़ फॉर्म एप्लिकेशन विकसित करना। मेरा लक्ष्य इस वेबसाइट में नेविगेट करना स्वचालित है, लेकिन जब किसी निश्चित बिंदु पर वेबसाइट एक जावास्क्रिप्ट अलर्ट पॉप अप करेगी, तब तक स्वचालन को रोक देगा जब तक कि मैं ठीक बटन दबाता हूं। मैंने इसे दबाए जाने पर एंटर प्रेस को अनुकरण करके समस्या हल की लेकिन एप्लिकेशन को काम करने के लिए ध्यान केंद्रित करना चाहिए। मेरा सवाल यह है कि वेबसाइट से इस कस्टम जावास्क्रिप्ट अलर्ट को मारने का कोई तरीका है (मुझे पक्ष तक पहुंच नहीं है, इसे क्लाइंट साइड से मार दें) तो यह इस समस्या को ठीक करने के लिए कोई शो नहीं दिखाता है या कोई अन्य तरीका नहीं है? दिखाता है कि जावास्क्रिप्ट अलर्ट (संदेशबॉक्स) एक त्रुटि नहीं है, एक जावास्क्रिप्ट चेतावनी है कि उस वेबसाइट के प्रोग्रामर किसी कारण से वहां डालते हैं।वेब ब्रोसर नियंत्रण वेबसाइट

+1

थोड़ा गुगल यह पाया: http://josheinstein.com/blog/index.php/2010/01/webbrowser-control-prevent-window-alert/ –

उत्तर

0

आप Navigated ईवेंट का उपभोग करने और संदर्भों को हटाने के लिए पृष्ठ लोडिंग से पहले DocumentText को अवरुद्ध करने का प्रयास कर सकते हैं।

MSDN पर Navigated पृष्ठ से

:

जब WebBrowser नियंत्रण एक नया दस्तावेज़ पर नेविगेट है सूचना प्राप्त करने के Navigated घटना संभाल। जब Navigated ईवेंट होता है, तो नया दस्तावेज़ लोड करना शुरू हो गया है, जिसका अर्थ है कि आप Document, DocumentText, और DocumentStream गुणों के माध्यम से लोड की गई सामग्री तक पहुंच सकते हैं।

using System.Windows.Forms; 
using System.Text.RegularExpressions; 

namespace Your.App 
{ 
    public class PopupSuppress 
    { 
     WebBrowser _wb; 
     public PopupSupress() 
     { 
      _wb = new WebBrowser(); 
      _wb.Navigated += new WebBrowserNavigatedEventHandler(_wb_Navigated); 
     } 

     void _wb_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
     { 
      string alertRegexPattern = "alert\\([\\s\\S]*\\);"; 
      //make sure to only write to _wb.DocumentText if there is a change. 
      //This will prompt a reloading of the page (and another 'Navigated' event) [see MSDN link] 
      if(Regex.IsMatch(_wb.DocumentText, alertRegexPattern)) 
       _wb.DocumentText = Regex.Replace(_wb.DocumentText, alertRegexPattern, string.Empty); 
     } 
    } 
} 

सूत्रों का कहना है/संसाधन:

यहाँ कुछ कोड है

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