【问题标题】:WebView scroll contentWebView 滚动内容
【发布时间】:2014-10-14 00:16:57
【问题描述】:

如何在 WebView 中设置页面滚动位置? 我通过在页面上添加 JavaScript 来获得 X 和 Y 坐标:

window.onscroll = scroll;
function scroll () {"
window.external.notify(window.pageXOffset + \",\" + window.pageYOffset)"
}

并将 X 和 y 保存在数组中:

private void WebView_OnScriptNotify(object sender, NotifyEventArgs e)
        {
            string[] valuePair = e.Value.Split(',');
            XY[0] = int.Parse(valuePair[0]);
            XY[1] = int.Parse(valuePair[1]);
        }

但是当我加载页面并想要恢复滚动位置时,如何在 WebView 中滚动页面?

【问题讨论】:

    标签: javascript c# webview winrt-xaml windows-8.1


    【解决方案1】:

    你大部分时间都在那里。您需要在离开页面时保存当前位置,然后在返回页面时导航回该位置。试试这个:

    在 MainPage.xaml.cs 中:

        static Point ScrollPosition = new Point();
    
        private void MyWebView_ScriptNotify(object sender, NotifyEventArgs e)
        {
            string[] Coordinates = e.Value.Split(',');
            ScrollPosition.X = double.Parse(Coordinates[0]);
            ScrollPosition.Y = double.Parse(Coordinates[1]);
        }
    
        private async void MyWebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
        {
            await MyWebView.InvokeScriptAsync("SetScrollPosition", new string[] { ScrollPosition.X.ToString(), ScrollPosition.Y.ToString() });
        }
    

    在 MainPage.xaml 中:

      <WebView x:Name="MyWebView" Width="800" Height="500" Source="ms-appx-web:///HTMLPage1.html" ScriptNotify="MyWebView_ScriptNotify" NavigationCompleted="MyWebView_NavigationCompleted"/>
    

    在 HTMLPage1.html 中:

      window.onscroll = GetScrollPosition;
    
        function GetScrollPosition() {
            window.external.notify(window.pageXOffset + "," + window.pageYOffset);
        }
    
        function SetScrollPosition(X, Y) {
            window.scrollTo(X, Y);
            window.external.notify(window.pageXOffset + "," + window.pageYOffset);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 2015-02-26
      • 2014-08-09
      • 2022-01-22
      • 1970-01-01
      • 2020-02-16
      相关资源
      最近更新 更多