gpt4 book ai didi

javascript - WebView 滚动内容

转载 作者:行者123 更新时间:2023-11-30 17:14:40 25 4
gpt4 key购买 nike

如何在 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 中滚动页面?

最佳答案

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

在 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);
}

关于javascript - WebView 滚动内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com