2

WebViewコントロールに問題があります。Windows 8メトロスタイルアプリを開発していて、WebViewのコンテンツでスクリプトを呼び出そうとしていますが、常に空の文字列が返されます。

"WebView.InvokeScript(" eval "、new string [] {"document.getElementById('contentDiv')。offsetHeight "})も作成しようとしましたが、同じように機能します-空の文字列です。実際にはありませんここで何が悪いのかを推測します。

public void Sethtml(string html) {
            var toSet = string.Format(Style, html);
            wv.LoadCompleted += wv_LoadCompleted;
            wv.NavigateToString(toSet);

        }

void wv_LoadCompleted(object sender, Windows.UI.Xaml.Navigation.NavigationEventArgs e)
        {
            WebView wv = sender as WebView;
            string height = wv.InvokeScript("heightFun", new string[0]); 
        }
 public static readonly string Style = @"<!DOCTYPE html>
                                               <html>
                                               <head>
                                               <title></title>
                                               <style>
                                               body {{
                                               font-family: Segoe UI; 
                                               }}
                                               </style>
                                               <script type='text/javascript'>
                                                var heightFun = function() {{ 
                                                   return document.getElementById('contentDiv').offsetHeight;
                                                }}
                                               </script>
                                               </head>

                                               <body>
                                                   <div id='contentDiv'>
                                                       {0}
                                                   </div>
                                               </body>";
4

2 に答える 2

2

を使用しwindow.external.notifyて値を送り返す必要があります。フォーラムの投稿を参照してください: http ://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/ac390a6a-d4ad-408c-8b13-93f9694cbabe

于 2012-10-24T08:32:54.087 に答える
2

前の答えのヒントを介してこの問題を解決しました。

戻り値が文字列であることを確認してください。

于 2013-12-30T17:53:06.023 に答える