UWP Visual C#WebView InvokeScript更改CSS抛出异常

时间:2016-07-02 20:06:28

标签: c# css webview uwp invokescript

我正在尝试通过注入Javascript函数来更改WebView(非本地)中加载的网站的CSS。我找到了这两篇文章(Article 1Article 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)
        {

        }
    }
...

我不知道为什么会抛出异常。我希望我提供的信息就足够了。如果没有,请回复我: - )

提前感谢您的回答

1 个答案:

答案 0 :(得分:0)

在Windows 8.1之后,

WebView.InvokeScript method可能无法用于发布。相反,我们需要使用WebView.InvokeScriptAsync method

您可以参考WebView class,官方文件的备注部分有一些例子:

  

您可以使用InvokeScriptAsync JavaScript eval功能将内容注入网页。