2010-09-02 105 views
3

我嘗試在C#中使用WebBrowserControll。我使用下面的代碼。 WebBrowser Controll打開網頁,如果有一個href =空白,它也會在新的WebBrowser Controll中運行。但是如果我想用window.open打開一個新的JavaScript,它會打開一個新的WebBrowser Controll。我必須做的是在我的WebBrowser Controll中打開一個href = blank和一個Java腳本。使用javaScript和html的C#WebBrowser控件

有沒有人有答案?

感謝您的幫助。

public MainWindow() 
    { 
     InitializeComponent(); 
     webBrowser1.ScriptErrorsSuppressed = true; 

     webBrowser1.FileDownload += new EventHandler(webBrowser1_FileDownload); 
     webBrowser1.NewWindow += new CancelEventHandler(webBrowser1_NewWindow); 
     webBrowser1.DocumentCompleted +=new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 
     webBrowser1.PreviewKeyDown += new PreviewKeyDownEventHandler(webBrowser1_PreviewKeyDown); 
     this.FormClosing += new FormClosingEventHandler(webBrowser1_FormClosing); 
    } 

    public void setURL(String aURL) 
    { 
      webBrowser1.Url = new Uri(aURL); 
    } 

    private void webBrowser1_NewWindow(object sender, CancelEventArgs e) 
    { 

     // open href= blank in new WebBrowser Controll 
     MainWindow newWindow = new MainWindow(); 

     newWindow.setURL(webBrowser1.StatusText); 
     newWindow.Show(); 
     e.Cancel = false;  
    } 

    private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) 
    { 
     Console.WriteLine(e.KeyCode.ToString() + " " + e.Modifiers.ToString()); 
     if (e.Modifiers == Keys.Control && e.KeyCode == Keys.V) 
     { 
      MessageBox.Show("ctrl-v pressed"); 
     } 
    } 

    private void webBrowser1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     if (MessageBox.Show(this, "Really close the window?", "Caption", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
     { 
      e.Cancel = false; 
     } 
     else 
     { 
      e.Cancel = true; 
     } 
    } 

    private void beendenToolStripMenuItem1_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 

回答

0

我不認爲這是可能的...瀏覽器應該發送一個創建參數(1),在window.open點擊時,所有雖然它關閉窗口時不工作(消滅(2) )

如果您正在進行黑客攻擊,您可以在加載時搜索文檔,並用DocumentText屬性替換window.open屬性,並使用標記代替它,它應該具有一定的創造性。

祝你好運