0

Javascript 関数を挿入して、ロードされた Web サイトの CSS を WebView (ローカルではない) に変更しようとしています。これら 2 つの記事 (記事 1記事 2 ) を見つけましたが、両方のバージョンを実装した後、常に次の例外が発生します: System.NotImplementedException {"メソッドまたは操作が実装されていません。"}

これはこれまでの私のコードです:

MainPage.xml

...
  <WebView x:Name="WebView" LoadCompleted="webViewCSS_LoadCompleted"/>
...

MainPage.xaml.cs

...
private void webViewCSS_LoadCompleted (object sender, NavigationEventArgs e)
  {
     addCss();
  }

private void addCss()
  {
     try
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("function setCSS() { ");
            sb.Append("document.getElementsByClassName('app')[0].style.width = '100%';");
            sb.Append("} ");

            string script = sb.ToString();
            WebView.InvokeScript("eval", new string[] { script });
            WebView.InvokeScript("eval", new string[] { "setCSS()" });
        } catch (Exception ex)
        {

        }
    }
...

なぜ例外をスローするのかわかりません。私が提供した情報で十分であることを願っています。そうでない場合は、私に戻ってください:-)

ご回答ありがとうございます。

4

1 に答える 1

2

WebView.InvokeScript メソッドは、Windows 8.1 以降のリリースでは使用できない場合があります。代わりに、WebView.InvokeScriptAsync メソッドを使用する必要があります。

WebView クラスを参照できます。公式ドキュメントの備考部分に例があります。

InvokeScriptAsyncJavaScript関数で使用してeval、コンテンツを Web ページに挿入できます。

于 2016-07-04T04:50:16.480 に答える