2011-11-27 71 views
4

我想調用WebBrowser控件中的C#方法。下面是我的代碼:在WebBrowser控件中,window.external不可用

在XAML中,

<phone:WebBrowser Margin="0,0,0,0" Name="WebBrowserForDetails" VerticalAlignment="Top" Height="300" ScriptNotify="WebBrowserForDetails_ScriptNotify" IsScriptEnabled="True" /> 

在C#中,

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 

    string html = string.Format("<html><head><title></title><script type=\"text/javascript\">{0}</script></head><body><button onclick=\"call();\">Push</button>", "function call(){ window.external.notify(123) ;}"); 
    WebBrowserForDetails.NavigateToString(html); 
} 

private void WebBrowserForDetails_ScriptNotify(Object sender, NotifyEventArgs e) 
{ 
    Debug.WriteLine(e.Value); 
} 

期望看到123在調試窗口。

當推<button>Push</button>時,window.external.notify永遠不會被調用。實際上,window.external不可用。我想調用WebBrowser控件的window.external.notify函數來調用WebBrowserForDetails_ScriptNotify方法。我該怎麼辦?

編輯

參考鏈接:MSDN: window.external.notifyAny way to set the WP7 Webbrowser control height Dynamically and lock scrolling?Displaying HTML Content in Windows Phone 7

+1

我假設你的意思是Windows-Phone-7?不是Windows Mobile。爲了將來的參考,我們更喜歡一個stackoverflow問題的內容實際上包含一個問題。你是事實陳述。 – AnthonyWJones

+0

@AnthonyWJones是的,我正在談論WP7。我還編輯了這個問題是一個問題。感謝您的評論:) –

回答

0

您的代碼似乎是正確的,但window.external.notify()方法是採用String參數,而不是整數。改爲嘗試window.external.notify('123')調用。 希望這有助於。

+0

問題是,'window.external'只返回空,所以我甚至不能回到'window.external.notify' –

+0

有測試項目適用於我:http://www.fileserve.com/file/BhVhMAZ/HTML.zip – Ku6opr

+0

文件現在不可用...請提供代碼或新鏈接! – 70sCommander

1

我懷疑你的問題是由於未關閉未提供有效的HTML5文檔作爲(身體& HTML)元素。

+0

+1對於最後一點,但您需要更仔細地閱讀問題中的代碼,您的前兩點都不是真的。 – AnthonyWJones

+0

這不是一個HTML5文檔。我沒有聲明doctype:'<!DOCTYPE HTML PUBLIC「 - // W3C // DTD HTML 4.01 Transitional // EN」 「http://www.w3.org/TR/html4/loose.dtd」> '。根據HTML4規範(以及HTML5規範),您不需要關閉body和html標籤。雖然我把結束標籤,我仍然'window.external'給出一個空值:( –