精华内容
下载资源
问答
  • windowsphone应用开发中,我们会常用到WebBrowser这个控件。它可以浏览网页,并且可以在当前打开的网页中单击超级链接,继续打开新的网页。但是在操作中会存在这样一个问题,当按"Back"键希望返回前一个(上一级)...

    在windowsphone应用开发中,我们会常用到WebBrowser这个控件。它可以浏览网页,并且可以在当前打开的网页中单击超级链接,继续打开新的网页。但是在操作中会存在这样一个问题,当按"Back"键希望返回前一个(上一级)网页时,程序会直接跳出当前的网页浏览器,直接返回到上一页面(客户端程序页面)。也就是说"Back"键会使程序返回程序的上一个PhoneApplicationPage,而不是WebBrowser中已打开过的前一个网页。

    1.网页回退

    我们普遍的做法会首先禁用掉Back键的功能,然后通过网页js的代码来实现网页的回退功能。在js有两种方法可以实现网页回退:

    (1)Browser.InvokeScript( "eval" , "history.go(-1)" );

    (2)Browser.InvokeScript( "eval" , "history.back()" );

    2.退出网页/浏览器
    上面的方法是不能使网页退出,而返回到上一级的程序页面的。那么在网页回到最初始页面时,是要启用Back的功能。为了在回退网页时禁用Back键,而在退出网页时启用Back,可以使用一个计数器来模拟打开的网页栈---
    计数器初始化为1。打开新的网页时,计数器加一;回退网页时,计数器减一。当计数器记录为1时,此时按Back键可以实现网页的退出。

    下面是简要代码:

    using System;
    using System.Windows.Navigation;
    using Microsoft.Phone.Controls;
    
    namespace CustomControls
    {
        public partial class ClockPage : PhoneApplicationPage
        {
            #region Data Members
    
            // 用于点击打开网页(非back键操作引起的)次数的统计
            private int m_PageStackCount = 0;
            // 标志是否为按Back键引起的网页跳转
            private bool m_BackKey = false;
    
            #endregion
    
            #region Constructor
    
            public ClockPage()
            {
                InitializeComponent();
            }
    
            #endregion
    
            #region Protected Methods
    
            protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
            {
                // 返回到上一级页面,此方法无法使网页退出,也就是最后只能退回到首页
                Browser.InvokeScript("eval", "history.back()");
    
                m_BackKey = true;
    
                if (m_PageStackCount > 1)
                {
                    e.Cancel = true;
                    m_PageStackCount -= 1;
                }
                else
                {
                    // 退出网页
                    e.Cancel = false;
                }
            }
    
            private void Browser_Navigated(object sender, NavigationEventArgs e)
            {
                if (m_BackKey == false)
                {
                    m_PageStackCount += 1;               
                }
                else
                {
                    m_BackKey = false;
                }
            }
    
            #endregion
        }
    }


    展开全文
  • } 如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化能够后退键保存相应的数据啊。 不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的...
        public void onBackPressed() {
            finish();
        }

     

    如果要做一个页面导航的功能的话,就我而言,认为,windows phone开发比android更加人性化,更加傻瓜化能够后退键保存相应的数据啊。

    不是吗,windows phone 导航更加傻瓜,因为微软的api中直接有一个goback的方法,能够使你回到相应的后退界面,因为他航到 Back 堆栈中的最新条目。 如果 Back 堆栈中没有任何条目,则此方法将引发异常;在调用此方法前,始终都要检查 CanGoForward。 这是由于一个页面毡对相应的page进行了管理,自愿遵守先进后出的原理也很好管理。而android中activity本身也有一个栈对象对相应的activity进行了管理,自愿后退时候,也能够进行了后退。想法是很好的,但现实是残酷的。你看我们android程序员必须在onkey事件中对相应的事件进行监听,判断他按下是不是back键来回退按钮。 这里事件是activity必须要实现传递,来截获这个后退按下的事件。我这里重点要提出一个问题,onKeyDown事件究竟是一层层实现back事件的.android 就是比.net好啊!开源,看源代码。

    需调用activity中的onKeyDown事件,他的源代码如何: 这是我们定义到了activity中的onKeyDown事件,他的源代码是这样子的:

      

    if (keyCode == KeyEvent.KEYCODE_BACK) {
                if (getApplicationInfo().targetSdkVersion
                        >= Build.VERSION_CODES.ECLAIR) {
                    event.startTracking();
                } else {
                    onBackPressed();
                }
                return true;
            }

    判断其目标版本是不是比本版本大的的话,就调用event.startTracking()方法,对event.startTracking()方法跟踪,发现他总是相隔了一段时间进行调用。

    否则的话,就调用onbackPressed方法。这个方法又是个怎么鸟样。源代码如下:

        public void onBackPressed() {
            finish();
        }

    他就调用 finish结束了当前的activity了,他的源代码又是这个鸟样:

        public void finish() {
            if (mParent == null) {
                int resultCode;
                Intent resultData;
                synchronized (this) {
                    resultCode = mResultCode;
                    resultData = mResultData;
                }
                if (Config.LOGV) Log.v(TAG, "Finishing self: token=" + mToken);
                try {
                    if (ActivityManagerNative.getDefault()
                        .finishActivity(mToken, resultCode, resultData)) {
                        mFinished = true;
                    }
                } catch (RemoteException e) {
                    // Empty
                }
            } else {
                mParent.finishFromChild(this);
            }
        }

    判断其父activity是不是有值的,有的话,就把当前数据保存起来,如果当前activity结束了,就通知dalvik虚拟机已经结束了当前activity,否则的父一级的activity来结束当前activity。

    这就是back事件的实现,他的实现的流程图是这样的:

    这就是我对back事件一点点了解。

    好好学习天天向上。

     

     

     

     

     

     


    <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
    展开全文
  • Git 撤销修改和版本回退

    万次阅读 2018-05-17 21:56:36
    撤销修改 撤销修改是指将工作区中的修改撤销。 语法:git checkout 文件名或路径 # 撤销工作区中当前目录中的所有更改 git checkout . ...git checkout 命令还有一个非常重要的功能就是切换...

    撤销修改

    撤销修改是指将工作区中的修改撤销。

    语法:git checkout 文件名或路径

    # 撤销工作区中当前目录中的所有更改
    git checkout .
    
    # 撤销工作区中指定文件的修改
    git checkout -- filename
    

    git checkout 命令只能撤销工作区中的修改,而不能撤销暂存区中的修改。

    git checkout 命令还有一个非常重要的功能就是切换分支。可用于分支管理。

    # 切换到指定的分支(如果分支在本地不存在,会自动从远程仓库拉取下来)
    git checkout develop
    
    # 切换分支的同时,创建分支
    git checkout -b my-dev
    

    这里,只是简单说一下 git checkout 如何切换分支,等你需要用到分支管理的时候,自然就明白了。

    版本回退

    版本回退是指将版本库从当前版本回退到其他的版本。

    语法:git reset --hard 版本号

    有时,我们需要将 Git 版本库回退(还原)到以前的某个版本,可以使用 git reset 命令。

    在 Git 中,HEAD 指针指向的是当前版本,也就是最新的 commit id,上一个版本是 HEAD^,上上一个版本就是 HEAD^^,上50个版本可以写成 HEAD~50。

    可以使用下面的命令,将 Git 回退到上一个版本:

    git reset --hard HEAD^
    

    这时,我们再来使用 git log 命令查看版本库被修改的日志。却发现,看不到被回退的版本之后的历史记录了。如果,想再回到最新的版本,怎么办?

    只要刚刚的命令行窗口没有关掉,你就可以顺着往上面找,直到发现最新的版本号(如4b2a0c88a2d03675694013ac6a2bd6f55c830cdc),于是,就可以使用下面的命令还原到指定的版本:

    git reset --hard 4b2a0c8
    

    版本号(commit id)没必要写全,一般写前七位就够了,Git会自动去匹配。

    但是,假如你回退到了某个版本后,把电脑关了。第二天又后悔了,想要恢复到最新版本。

    这时,可以使用命令 git reflog 来查看你的每一次操作日志,该命令可以输出对应的版本号的操作记录。这样,我们就可以恢复到任意版本了。

    git reset 的选项

    git reset 有很多可用的选项。可以通过帮助命令来查看。

    git reset -h
    

    其中,最常用的三个选项是:

    • --mixed: reset HEAD and index。表示重置 HEAD 指针和 index 暂存区,但保持工作区不变。它是默认选项。
    • --soft: reset only HEAD。表示仅仅重置 HEAD 指针,即只改变 HEAD 的指向,但保持工作区和暂存区不变。
    • --hard: reset HEAD, index and working tree。表示重置 HEAD 指针、index 暂存区和工作区。这个才是完整的版本回退。

    查看版本库的状态

    git status
    

    git status 命令非常有用。它可以查看版本库的当前状态,还可以看到相关操作的提示信息。

    查看修改

    如果你修改了工作区中的某些文件,想要查看具体更改了什么内容,可以使用 git diff 命令。

    git diff .
    
    git diff filename
    

    查看工作区和版本库的区别

    如果你只是修改了工作区,还没有 git add 到暂存区,想要查看工作区和版本库的区别。

    # 查看工作区和版本库的区别
    git diff
    

    上述命令只能查看到工作区中已经存在的文件的修改,如果是新创建的文件,它追踪不到。如果修改和新文件已经 git add 到了暂存区,就需要使用下面的命令来查看。

    查看暂存区和版本库的区别

    如果你修改了工作区,已经 git add 到了暂存区,想要查看暂存区和版本库的区别。

    git diff --cached
    

    查看两个版本之间的区别

    如果你修改了工作区,已经 git add 到了暂存区,并且 git commit 到了版本库。这样 head 指针就指向了最新的版本。想要比较两个版本之间的区别。

    语法: git diff 版本号1 版本号2

    # 比较两个版本之间的差异
    git diff 4129523 0a7d9af
    

    在这个例子中,412952 是上一个版本的版本号,0a7d9af 是当前的版本号(最新版本号)。只取前 7 位就够了。

    # 比较之前的版本和当前版本的差异
    git diff 4129523 head
    
    # 比较某个文件在两个版本之间的差异
    git diff 09d9b45 head ./config/app.php
    
    # 比较之前的版本和当前版本的差异的简写形式
    git diff 4129523
    

    查看本地的两个分支的区别

    语法格式为:git diff branch1 branch2

    # 比较 develop 分支和 master 分支的区别
    git diff develop master
    

    查看本地分支和远程分支的区别

    # 对比本地的 develop 分支和远程的 master 分支的区别
    git diff develop origin/master 
    

    查看版本库的历史记录

    如果你想查看版本库提交的历史记录 ,可以使用 git log 命令。

    # 查看版本库的历史记录
    git log
    
    # 查看版本库的历史记录,美化输出
    git log --pretty=oneline
    
    # 查看版本库的历史记录,只显示前 5 条
    git log -5
    
    git log -5 --pretty=oneline
    

    git log 命令默认会进入日志查看模式,可按 q 退出查看模式。

    git log 命令会显示从最近到最远的提交日志,每一行的前面的一大串字符就是 commit id(版本号),它和 SVN 的版本号不一样,Git 的版本号不是递增的数字,而是一个 SHA1 加密计算出来的一个非常大的数字,用十六进制表示。

    场景分析

    场景一

    假如你只是修改了工作区,还没有 git add 到暂存区。可以使用下面的命令撤销工作区中的修改。

    # 仅仅是撤销工作区中的修改
    git checkout .
    

    场景二

    假如你修改了工作区,并把工作区中的修改 git add 到了暂存区。

    如果你想撤销工作区和暂存区中的修改。

    git reset --hard head
    # 简写为
    git reset --hard
    

    如果你仅仅只是想要撤销暂存区中的修改。

    git reset --mixed
    # 简写为
    git reset
    

    场景三

    假如你修改了工作区,并把工作区中的修改 git add 到了暂存区,然后又 git commit 提交到了版本库。

    如果你想回退到上一个版本,可以使用下面的命令。

    git reset --hard head^
    

    查看当前的版本号,可以使用。

    git rev-parse HEAD
    

    需要注意的是,在 Windows 的 CMD 中, ^ 代表换行,即命令没输完,在下一行继续输命令。它相当于 Linux 中的 \ 。

    因此,在 CMD 中回退到上一个版本的写法,就略有不同。

    具体的解决方法有:

    • git reset --hard "head^"
    • git reset --hard HEAD^^
    • git reset --hard HEAD~
    • git reset --hard HEAD~1
    • 改用 PowerShell 或 Git Bash 终端

    还有一个需要注意的问题是,通常我们所说的版本回退是指完整的版本回退。

    如果你回退版本时,采用的是 『 git reset --mixed 版本号 』,--mixed 其实本来就是默认选项。那么,你只是更改了 head 的指向和回退了暂存区,而并没有回退工作区。如果想要继续把工作区也回退,你还需执行下面的命令

    git checkout .
    

    这样,才算完整的版本回退。

    完整的版本回退,包含三个要素:

    • 更改 HEAD 指针的指向(即让 HEAD 指向目标版本)
    • 回退工作区(即工作区中的内容也要回退到目标版本)
    • 回退暂存区(即暂存区中的内容也要回退到目标版本)

    为此,推荐使用 git reset --hard 来完成版本回退。

    展开全文
  • 工作中遇到在浏览器空白处,或者不可编辑的input框上,点击【Backspace】按键,出现浏览器页面回退的问题,经过测试,发现谷歌浏览器默认屏蔽了这个回退功能,但IE、360浏览器、火狐浏览器都没有,这个功能会导致...

    问题:

    工作中遇到在浏览器空白处,或者不可编辑的input框上,点击【Backspace】按键,出现浏览器页面回退的问题,经过测试,发现谷歌浏览器默认屏蔽了这个回退的功能,但IE、360浏览器、火狐浏览器都没有,这个功能会导致,特别是后台系统,session丢失,退回到登录页面,严重影响用户体验。
    比如,用户在进行表单的信息填写,不经意在浏览器空白处点击了【Backspace】按键,退到了登录界面,想想这是个什么样的体验。

    解决方法:

    通过js监听backspace按键的按下事件:

    1、如果标签不是input或者textarea则阻止Backspace
    2、input标签除了(TEXT、TEXTAREA、PASSWORD)这些类型,全部阻止Backspace
    3、input或者textarea输入框如果不可编辑则阻止Backspace

    代码如下:

    function banBackSpace(e) {
    		var ev = e || window.event;
    		//各种浏览器下获取事件对象
    		var obj = ev.relatedTarget || ev.srcElement || ev.target || ev.currentTarget;
    		//按下Backspace键
    		if (ev.keyCode == 8) {
    			var tagName = obj.nodeName //标签名称
    			//如果标签不是input或者textarea则阻止Backspace
    			if (tagName != 'INPUT' && tagName != 'TEXTAREA') {
    				return stopIt(ev);
    			}
    			var tagType = obj.type.toUpperCase();//标签类型
    			//input标签除了下面几种类型,全部阻止Backspace
    			if (tagName == 'INPUT' && (tagType != 'TEXT' && tagType != 'TEXTAREA' && tagType != 'PASSWORD')) {
    				return stopIt(ev);
    			}
    			//input或者textarea输入框如果不可编辑则阻止Backspace
    			if ((tagName == 'INPUT' || tagName == 'TEXTAREA') && (obj.readOnly == true || obj.disabled == true)) {
    				return stopIt(ev);
    			}
    		}
    	}
    	function stopIt(ev) {
    		if (ev.preventDefault) {
    			//preventDefault()方法阻止元素发生默认的行为
    			ev.preventDefault();
    		}
    		if (ev.returnValue) {
    			//IE浏览器下用window.event.returnValue = false;实现阻止元素发生默认的行为
    			ev.returnValue = false;
    		}
    		return false;
    	}
    
    	$(function() {
    		//实现对字符码的截获,keypress中屏蔽了这些功能按键
    		document.onkeypress = banBackSpace;
    		//对功能按键的获取
    		document.onkeydown = banBackSpace;
    	})
    上述代码可以放到公共的js中,此处的代码参照此篇博客:
    http://www.cnblogs.com/lujiulong/p/6019638.html

    在此说明几点:
    1、  IE:有window.event对象
    Firefox:没有window.event对象。可以通过给函数的参数传递event对象。如οnmοusemοve=doMouseMove(event)
    统一的解决方法:var event = event || window.event;


    2、  IE:even对象有srcElement属性,但是没有target属性
    Firefox:even对象有target属性,但是没有srcElement属性
    解决方法:var obj = event.relatedTarget || event.srcElement || event.target || event.currentTarget;


    展开全文
  • iOS系统回退教程

    千次阅读 2019-09-27 11:23:24
    这篇教程就教你回退iOS系统,也就是降级。 1.首先下载iOS固件,访问苹果官方固件下载网站,你会看到4个步骤,分别是: Choose a product Choose a platform Choose a version Download! 你只需要按照这4个步骤来...
  • svn回退特定版本的提交

    千次阅读 2020-06-18 17:57:50
    Windows下使用TortoiseSVN,这个功能很容易实现,选中提交的记录,邮件菜单里选择Revert changes from this revison。 但是如果代码在Linux上,并且通过Windows挂载smb目录操作的话,很容易破坏数据库,不得不重新...
  • 原文链接 前言 ... 前几天用户反映在录入资料时一不小心错按Backspace键,就会直接回退到... Windows下的IE、FireFox和Chrome 52之前的浏览器,当焦点不在一个可编辑的元素上时,按Backspace键就会回退到上一个
  • Git 代码管理(代码提交和代码回退) Git的主要功能是代码管理,版本管理,分支管理。 在远程代码管理平台上,项目的代码被管理在一个远程代码仓库中,在本地,代码保存在一个本地代码仓库中。通过Git,本地对代码...
  • ubuntu新版wireshark的升级与回退

    千次阅读 2016-11-24 23:24:25
    新版wireshark功能如此强大,为什么要回退呢,因为配置跟不上啊。。。电脑配置不高,发现使用新版wireshark抓包时时常会发生卡顿现象,删除重装之后居然发现装上的还是新版的wireshark。。 然后想起来在升级的...
  • Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目讲的...
  • Xcode更新又需要macOS也更新,闲着没事干就一股脑全更新了,虽然新的什么都好,Xcode9打开原来的工程也是报了好多警告和错误,不过每次更新都是这个样子,网上搜搜基本上也都能搞定,况且还新增了不少功能。...
  • 用CodeDeploy来做部署、更新和回退

    千次阅读 2015-03-13 10:03:31
    创建好Application和DeploymentGroup之后,跟配置管理工程师协定好往版本中添加的文件,然后按时间+项目+版本号的方式打包,并上传到S3上,然后代码的更新回退,由测试和开发同学在浏览器上就能完成,省的自己写代码...
  • 从win10回退到win7的苦逼经历

    万次阅读 2016-02-17 23:24:08
    首先我在度娘上了解到C盘目录下有个windows.old的文件,里面记录了原来版本的信息,win10可以从 设置->更新与安全->恢复->回退到win7下的开始 回滚到原来版本的系统,后来才知道,win10回滚原来版本的功能的期限是一...
  • 在控制面板-->程序与功能-->启用或关闭windows功能。点击进入后“windows功能”界面,选中“Telnet客户端”, 点击确定。等待完成安装就可以了。 启动tomcat(启动方法参考上一篇) 按下windows+R键,输入cmd,...
  • 1、Git是什么? 一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样我们可以选择在合适的...结合本地版本管理功能,远
  • 操作系统为windows7专业版,曾经升级试用过win8和win10后又回退为win7。UAC为默认设置。正常情况应该是安装完该32位程序后,在<用户 \ appdata \ local \ virtualstor \ program\xxx>下调整好配置文件即可。可出问题...
  • Windows、office激活

    千次阅读 2020-04-06 15:46:05
    激活Windows、office的方法——KMS工具 用工具无法激活时、考虑已经输入了无效的秘钥,用KMS工具的回退功能,再次尝试激活即可
  • 其实这个想法已经有人做了,使用手机自带的nfc模拟校园卡,是可以实现门禁进出功能的。经过实际测试,一下方案是可行的: 使用带NFC功能手机模拟 NFC读卡器 + 白卡 带NFC功能手机+手环 or NFC 读卡器+白卡+手环 ...
  • 驱动不需要更新,回退驱动程序(R)选项灰色无法进行操作。 打开「服务」。找到windows biometric service 和 windows camera frame service设置为自动开启(触发器)。 补充一个方法,若提示相机无法打开,可尝试...
  • 解决 Windows 10 更新错误代码 0x800f0922

    万次阅读 热门讨论 2020-10-15 13:14:04
    三个一起更新,重启更新到100%就提示失败,并自动回退。 解决方法 可能不通用,可以参考一下。 记住三个一起更新的时候的更新顺序,我这边是系统更新->.Net更新->Flash更新。 使用 wushowhide.diagcab...
  • Windows下SVN客户端的安装与初步使用

    万次阅读 多人点赞 2017-03-22 11:10:08
    在上篇博文《Windows下SVN服务端的安装与初步使用》中我们已经安装好了SVN服务端,这篇博文就将对SVN客户端进行安装和使用,在上篇博文中已经说过SVN最好的就是VisualSVN Server服务端和 TortoiseSVN客户端搭配起来...
  • 好了,关于 在Windows下本地git服务器端安装教程 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注...
  • Windows10 会不会成为微软的新起点?

    千次阅读 2015-08-07 10:04:53
    如果你改变看世界的方式,你就能改变你眼前的世界!— 微软Hololnes宣传片台词 Windows 10 带来了什么呢?Windows 10是炎炎夏日的一场暴风雨,一扫酷热!一股新风给科技界注入新的活力!
  • Windows XP Embedded 入门

    千次阅读 2007-09-19 16:11:00
    TA.exe是一个16位应用程序,运行在DOS上,可以用来检测一些无法安装Windows 2000及Windows XP的系统,但检测的功能要差一些,有的硬件设备无法识别。 下面我们运行TAP.exe来检测这台开发机的硬件配置:  ...
  • windows命令大全

    千次阅读 2019-02-21 00:11:12
    Windows命令的控制有很多很多,下面小编给大家收集了一些最为常用的命令符 一、常用dos命令: Win + R , 输入cmd回车 --- 打开控制台 d: 回车 盘符切换 dir (directory) 列出当前目录下的文件及文件夹 cd ...
  • Windows Phone开发(8):关于导航的小技巧

    千次阅读 多人点赞 2012-02-22 21:48:54
    因为手机的硬件层就有一个“回退”按钮,按理说我们不需要在程序中再添加什么回退按钮之类的,不过,还是有必要看看如何手动加入回退功能。 1、新建一个WP应用项目。 2、除默认的主页外,新建一个页面Pag
  • Windows日志浅析

    万次阅读 2012-02-01 17:50:47
    从这篇文章开始本人开始结合Windows产品日志分析大神(RANDY FRANKLINSMITH)的电子书,以及自己的实验对Windows操作系统的日志开始分析。也是对自己的一种激励,至少希望自己能坚持下去这个分析。并且希望自己可以...
  • Windows内核研究总结

    千次阅读 2016-02-05 11:07:22
    Windows 的体系结构 分析环境reactos0.3.1 ,i386体系] 了解了windows的体系结构才知道reactos到底要干什么,以及如何干,因为reactos的目标是兼容windows。 下面是windows的体系结构: 这是整个windows的...
  • Windows/Mac下 Eclipse中最常用的热键

    千次阅读 2016-08-30 09:40:01
    Eclipse中最常用的热键 1,Ctrl+D 删除选中的几行 ...3,Alt+左右箭头 回退 前进 4,Alt+Shift+上下箭头 复制选中的代码块 5,sysout+Ctrl space 生成System.out.println(); 6,main + Ctrl space 生成最简单的main函数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,939
精华内容 9,575
关键字:

windows回退功能