2013-07-17 34 views
1

我使用的是Gekofx瀏覽器,因爲我的html文件無法使用默認的瀏覽器控件。我如何使用C#與Gekofx瀏覽器調用JavaScript函數

到目前爲止,我正在使用ObjectForScripting從我的C#項目調用JavaScript代碼。但我無法用Gekofx瀏覽器調用任何東西。

我只想發送一些數據到我的html文件,並用Gekofx瀏覽器顯示它。它有可能嗎?

沉思這裏是我的代碼:

GeckoWebBrowser myBrowser; 

    public Form1() 
    { 
     InitializeComponent(); 

     String path = @"C:\tools\xulrunner\xulrunner-sdk\bin"; 

     Console.WriteLine("Path: " + path); 

     Skybound.Gecko.Xpcom.Initialize(path); 

     myBrowser = new GeckoWebBrowser(); 
     myBrowser.Parent = this; 
     myBrowser.Dock = DockStyle.Fill; 
    } 

    private void btn_go_Click(object sender, EventArgs e) 
    { 
     // like the normal browsers 
     myBrowser.Navigate(tbx_link.Text); 
    } 

    private void btn_test_Click(object sender, EventArgs e) 
    { 
     // getting the link to my own html file 
     String path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Webpage"); 
     path += "\\Webpage.html";myBrowser.Navigate(path); 

    } 

我希望你明白我的意思。謝謝!

回答

2

您可以隨時調用JavaScript這樣的:

mybrowser.Navigate("javascript:YourJavascriptFunction('yourArgument1', 'youArgument2')"); 
+0

首先,謝謝你的回答。但我猜在我的代碼中是錯誤的或者仍然不完整。因爲這條線不做任何事情。這是我的JavaScript代碼:'

的Hello World!

'有什麼可以做的嗎? –

+0

然後你用mybrowser.Navigate(「javascript:test('Test')」);? – Jordy

+0

是的。沒有反饋。但是它在將下面的代碼部分放入我的'btn_test_Click'之後工作:'myBrowser.Navigate(path); MessageBox.Show(「Stop!」); myBrowser.Navigate(「javascript:test('Test')」);' 我不是沒有爲什麼,但它的工作原理。你能解釋我爲什麼? –

0

大廈@約迪的回答以上,請致電:

mybrowser.Navigate("javascript:YourJavascriptFunction('yourArgument1', 'youArgument2')"); 

prefferably在文檔完整的事件處理程序,以允許頁面首先加載。

void myBrowser_DocumentCompleted(object sender, Gecko.Events.GeckoDocumentCompletedEventArgs e) 
    { 
     myBrowser.Navigate("javascript:YourJavascriptFunction('yourArgument1', 'youArgument2')"); 
    } 
相關問題