`

解决Android浏览器中点击go to top类型的链接失效方法

阅读更多
在项目开发中发现android的WebKit浏览器中对于 http://www.aaa.com/index.html#name这类的链接处理有问题,第一次点击可以正常跳转到指定位置,但是再点击则无效了。
    修改的方法有点啰嗦,因为没学过c++,改的很废力,总之先搞好使了再说吧。
    分析原因:第一次点击时系统获取了节点的对象,然后进行跳转了,当再次对于有一链接点击后这个对象的值则被清成0了,所以不再进行跳转。
    解决方法:
    1:打开external/webkit/webcore/page/FrameView.h增加两个变量 RfPtr<Node> m_oldAnchor; bool m_scrollToType;
    2:打开external/webkit/webcore/page/FrameView.cpp,在reset()中初始化这两人个变量m_oldAnchor=0;m_scrollToType=false;
     然后找到
maintainScrollPostionAtAnchor(Node* anchorNode){
   //m_mainScrollPostionAtAnchor=anchorNode; 把这句屏蔽掉
    //加上
    if(!m_oldAnchor){
      m_oldAnchor=m_mainScrollPostionAtAnchor; //相当于初始化
    }
    m_scrollToType=true; 
    if(anchorNode!=0){
      m_oldAnchor=anchorNode;  //如果用户点击的链接有效则保存起来
    }
    m_mainScrollPostionAtAnchor=m_oldAnchor; //这句就是让用户点击的链接始终有效,Node始终存在
}
  

然后找到 scrollToAnchor(){}方法
scrollToAnchor(){
    //加上
    if(anchorNode==0){
      anchorNode=m_oldAnchor; 
    }
    .
    .
    .
    //m_mainScrollPostionAtAnchor=anchorAnchor; 屏蔽掉这句
     m_scrollToType=false;
}

2
2
分享到:
评论

相关推荐

    Android手机版浏览器DIV滚动条失效解决方案

    通过以上步骤,大多数情况下应该能解决Android手机版浏览器中`div`滚动条失效的问题。如果问题依然存在,可能需要进一步分析具体的代码和环境,以找到更针对性的解决方案。同时,提供的`src`和`examples`文件可能...

    android超出布局点击失效解决方案附带自定义控件

    标题"android超出布局点击失效解决方案附带自定义控件"正是针对这一问题提供了相应的解决策略。 首先,我们要理解Android中的事件传递机制。当用户点击屏幕时,事件会从最顶层的父布局开始向下传递,直到找到能接收...

    android webview input=file 失效解决方案

    在Android开发中,Webview是一个重要的组件,它允许我们在原生应用中内嵌网页内容,提供混合式应用的用户体验。然而,在使用Webview时,有时会遇到一个问题:当HTML页面中包含`&lt;input type="file"&gt;`用于上传文件的...

    网页链接失效

    在探讨“网页链接失效”这一主题时,我们不仅触及了网络资源的易变性,还深入到了计算机系统内部,特别是Windows环境下与网络浏览器相关的组件及其潜在的修复方法。以下是对标题、描述及部分提及内容的详细解读,...

    VC6_add files to project失效解决方法

    在使用Microsoft Visual C++ 6.0(简称VC6)进行C++开发时,有时会遇到"Add Files to Project"功能失效的问题,这使得无法通过菜单项将新文件添加到项目中,对开发流程造成不便。本文将详细介绍如何解决这个问题,并...

    5种方法完美解决android软键盘挡住输入框方法详解

    在Android应用开发中,经常会遇到一个问题,即当用户在输入框中输入时,弹出的软键盘会遮挡部分屏幕内容,尤其是对于登录或注册等需要填写多项信息的界面,这种情况严重影响了用户体验。为了解决这个问题,Android...

    浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法

    方法一:在标签上加入 onLoad=”” onResize=”” 方法 写上对应的方法即可方法二:[removed]=function(){///…..} 在方法里面写上对应的代码即可着两种方法基本都可以解决你的问题了 代码如下: [removed]=...

    解决Android4.0中菜单设置图标无效问题

    请注意,由于我们访问的是Android的内部类和私有方法,这种方法可能在不同的Android版本或设备上表现不一致,甚至可能在未来的Android更新中失效。因此,这种解决方案应当作为最后的手段,并且需要对可能的风险有所...

    Android 中ListView的Item点击事件失效的快速解决方法

    当然,还有一种解决办法是更改子控件的类型,例如将ImageButton替换为ImageView,因为ImageView默认不接收点击事件,这样也可以避免点击事件冲突。 除了以上的方法,你还可以通过在getView()方法中为每个子视图设置...

    Android中ListView实现子控件点击事件后ListView点击事件失效解决办法

    Android中ListView实现子控件点击事件后ListView点击事件失效解决办法,详细说明见相关博客: 博文地址:http://blog.csdn.net/leijf1239848066/article/details/9526483

    浏览器插件网盘搜索+自动标识失效链接.zip

    在这个特定的压缩包“浏览器插件网盘搜索+自动标识失效链接.zip”中,我们主要关注的是一个针对网盘搜索和检测失效链接的插件。 网盘搜索插件允许用户在不同的云存储平台上快速查找和访问文件。这些平台可能包括...

    DialogFragment的使用及利用自定义interface点击事件并解决旋转屏幕点击事件失效问题

    本教程将深入探讨DialogFragment的使用,以及如何利用自定义接口处理点击事件,并解决在屏幕旋转时点击事件失效的问题。 首先,让我们了解DialogFragment的基本使用。要创建一个DialogFragment,你需要继承...

    资源下载遇到百度网盘链接失效怎么办?.docx

    解决百度网盘链接失效问题的方法 在资源下载过程中,大家可能都遇到过这样子的问题:好不容易找到了自己需要的下载链接,点进去之后发现是百度网盘的链接,更气人的是链接还是失效的。这种情况下,我们可以使用一些...

    迅雷下载地址修改器(解决失效链接)

    《迅雷下载地址更换器》使用方法: 1、迅雷内删除任务,且不要选择“同时删除文件” 2、定位到文件保存目录,把对应的.td.cfg文件拖入程序窗口 3、修改地址 4、保存。(会自动备份原文件,备份后缀.bak) 5、双击td...

    Android完美解决gridview拖拽与点击响应的冲突

    因为项目原因需要在gridview上实现item拖动,同时不与OnItemClick事件冲突,观网上流传的一些代码,总有一些缺憾,故在别人研究基础上加上自己的思路, 终于完美解决gridview拖拽与点击响应的冲突,现与大家分享

    Android调用系统自带浏览器打开网页的实现方法

    在Android开发中,调用系统自带浏览器或者特定第三方浏览器打开网页是一个常见的需求。本文将详细介绍如何实现这一功能。 首先,启动Android默认浏览器的方法非常简单。通过发送一个隐式Intent,我们可以让系统自动...

    iOS下Safari点击事件失效的解决方法

    iOS下Safari点击事件失效的解决方法 在iOS下的Safari浏览器中,点击事件可能会失效,这是由于委托给一个元素添加click事件时,事件是委托到document或body上,并且委托的元素是默认不可点击的(如div, span等),...

    android模拟器不能使用键盘解决

    需要注意的是,不同的操作系统和模拟器版本可能会有不同的解决方法,因此在实际操作中还需要根据具体情况进行调整。此外,保持软件的最新状态、合理配置硬件参数以及维护良好的驱动环境也是预防此类问题的关键。希望...

    解决iframe中fixed失效的问题

    解决 `iframe` 中 `fixed` 失效的方法主要有以下几种: 1. **同源策略的解决**: - 如果可能,将 `iframe` 中的页面转移到与包含页面相同的域下,这样可以消除同源策略的限制。 - 使用 `postMessage` API 进行...

Global site tag (gtag.js) - Google Analytics