首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Windows Phone 7 WebBrowser组件VerticalOffset

获取Windows Phone 7 WebBrowser组件VerticalOffset
EN

Stack Overflow用户
提问于 2010-10-27 11:35:50
回答 3查看 812关注 0票数 0

我希望将用户的位置保存在他或她正在浏览的文档中,然后在他们从tombstoning或会话之间返回时将其带回该位置。

我的第一种方法是将浏览器组件包装在滚动查看器中,但事实证明它自己处理滚动,并且滚动查看器从不更改其垂直偏移量。

我的猜测是,浏览器组件中必须嵌入一个滚动查看器或类似的东西。我需要获取垂直偏移量并滚动到一个偏移量。

有没有猜猜怎么到那里的?

我的下一个方法是将javascript和c#痛苦地混杂在一起,找出它们在哪里……

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-27 17:44:09

由于WebBrowser控件的构建方式,您需要在Javascript中跟踪滚动,然后将位置传递给托管代码以处理该值的存储。

在恢复时,您需要让托管代码将滚动位置传递给Javascript函数以重置滚动位置。

这是理论上的,但我还没有研究过WebBrowser中的javascript滚动事件的功能。那是我唯一能看到可能的问题的地方。

很高兴听到你的进展。

票数 1
EN

Stack Overflow用户

发布于 2010-10-28 20:30:37

我已经接受了Matt的回答,但我想在这里加入一些细节。一旦我完全完成了,我也会写关于我是如何做到这一点的博客。

因为WebBrowser组件本质上是一个黑盒,所以您没有我想要的那么多的控制。话虽如此,获取和设置垂直偏移是可能的。

Javascript允许您请求值,但是不同的浏览器使用不同的变体来请求。在这种情况下,我只需要担心一个浏览器。

首先,我做了几个简单的javascript函数:

代码语言:javascript
复制
function getVerticalOffset() {
    return document.body.scrollTop;
}

function setVerticalOffset(offset) {
    document.body.scrollTop = offset;
}

接下来,我在browser对象上使用InvokeScript方法调用WebBrowser。

当我写完完整的文章后,我会在这里发布更新,并提供我博客的链接。

票数 1
EN

Stack Overflow用户

发布于 2012-02-24 02:19:56

我一直在写一个eBook阅读器,也有类似的问题。设置滚动位置的代码已经很容易找到了。

设置垂直滚动位置代码:

代码语言:javascript
复制
string script = string.Format("window.scrollBy(0,{0});", "put your numeric value here");
        wb_view.InvokeScript("eval", script);

谷歌在找到获取当前滚动位置值的解决方案方面帮助不大。由于对javascript一无所知,我花了近两个小时才把它弄对。

获取垂直滚动位置的代码:

代码语言:javascript
复制
var vScroll = wb_view.InvokeScript("eval",
            "var vscroll = window.pageYOffset; vscroll.toString();");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4029787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档