`
jinyanhui2008
  • 浏览: 318480 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

监听 Flex 页面的后退/前进/刷新/关闭

    博客分类:
  • Flex
阅读更多

我们知道 Flex 做的 web 页面在整个程序中只有一个 url, 当我们按了 IE 上的后退/前进/刷新/关闭时就会退出到第一次 load 时的页面,重新加载过。

在网上搜过很多,利用Javascript并不能实现屏蔽 IE 的后退/前进/刷新/关闭各功能。
在朋友介绍的一个网站https://www.photoshop.com当你登录后就会监听IE 的后退/前进/刷新/关闭各功能,提示是否要执行。看了这个网站的原代码,再在网上搜了一下,终于发觉他是怎样实现的(原文:http://flexblog.faratasystems.com/?m=20061217)。

通过javascript 的 onbeforeunload 和 onunload 事件与 ActionScript 的addCallback方法 (如下边的“getUnsavedDataWarning();”方法)来实现监听:

1. 在 index.template.html 中增加javascript

<script language=”JavaScript” type=”text/javascript”>    
//-------------------------------------------------------------------------------------------    
// Specifies a function for the window's onbeforeunload event    
// Call back to the getUnsavedDataWarning in our Flex app when the browser is about to unload    
//-------------------------------------------------------------------------------------------    
//window.onbeforeunload = function()    
   
window.onbeforeunload = onbeforeunload_handler;    
function onbeforeunload_handler()    
{    
     var warning="";    
     var fxControl = document.${application} || window.${application};    
    if ( fxControl )    
        if ( typeof fxControl.getUnsavedDataWarning=="function")    
             warning = fxControl.getUnsavedDataWarning();    // This calls a function in our Flex app    
        
    if ( warning != '' )    
        return warning;    
    else    
        return void(0);    
}    
   
   
//-------------------------------------------------------------------------------------------    
// Specifies a function for the window's onunload event    
// Call back to the javascriptOnUnload in our Flex app when the browser unloads    
//-------------------------------------------------------------------------------------------    
window.onunload = function()    
{    
     var fxControl = document.${application} || window.${application};    
    if ( fxControl )    
        if ( typeof fxControl.javascriptOnUnload=="function")    
            fxControl.javascriptOnUnload();  // This calls a function in our Flex app    
}    
</script>   
 

2.在 Flex 的 application 页面里加增一个addCallback, 在页面加载完后就addCallback:

private const UNSAVED_DATA_WARNING:String = 'You have unsaved changes. You will lose them if you continue.';       
                   
    private function onCreationComplete():void {       
         ExternalInterface.addCallback("getUnsavedDataWarning",       
             function():String {       
                return UNSAVED_DATA_WARNING;       
             }       
         );       
     }  
 
这样就可以防止 Flex 页面的意外后退/前进/刷新/关闭了。
分享到:
评论

相关推荐

    js监控IE火狐浏览器关闭、刷新、回退、前进事件.docx

    在Web应用开发过程中,有时需要对用户的浏览器行为进行监控,比如浏览器的关闭、刷新、前进或后退等操作。这对于提高用户体验、确保应用程序状态的一致性等方面具有重要意义。本文将详细介绍如何使用JavaScript来...

    js监听页面的刷新与关闭

    使用javascript实现监听页面的刷新与关闭,可在用户刷新或关闭窗口时执行相关操作。

    后退、刷新、前进按钮.rar

    同时,JavaScript事件监听器如`addEventListener`可以捕捉用户的点击事件,触发相应的函数执行,如刷新页面、回退或前进。 五、实际应用与示例 在实际的网页开发中,我们可能会遇到需要自定义这些按钮的情况,例如...

    弹出层关闭父页面刷新

    总的来说,实现“弹出层关闭后刷新父页面”的功能,主要涉及到JavaScript的事件监听和窗口操作,是前端开发中常见的交互设计。理解并掌握这个过程,对于提升用户体验和优化页面流程有着积极的作用。

    Flex:登录

    标题“Flex:登录”指的是使用Adobe Flex技术实现用户登录功能的一种方法。Flex是Adobe公司推出的一款基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA)。这篇博客文章可能详细介绍了如何在Flex项目...

    JS区分浏览器页面是刷新还是关闭

    在Web开发中,区分浏览器页面是刷新还是关闭的需求非常常见,这主要是为了优化用户体验和保证系统的操作逻辑。传统的做法是使用BOM(Browser Object Model)事件中的onbeforeunload事件,该事件会在页面即将卸载前...

    js实现监听浏览器关闭和刷新事件

    js实现监听浏览器关闭和刷新事件支持三大浏览器,点击直接看效果

    flex监听浏览器关闭事件

    在Flex应用中监听浏览器关闭事件主要依赖于JavaScript与Flash/Flex之间的交互。当用户尝试关闭浏览器窗口时,`window.onbeforeunload`事件会被触发。我们可以通过在Flex应用中调用JavaScript来监听这个事件,并在...

    监听打开/关闭APP

    监听打开/关闭APP 在接收动作的位置添加你所想要做的事情

    webview 监听页面显示事件

    本文将深入探讨如何监听WebView中的页面显示事件,以便在特定时刻执行相应的操作。 首先,我们需要了解WebView的基本使用。在Android布局XML文件中,我们可以通过添加WebView标签来创建一个WebView实例: ```xml ...

    APP中:vue-h5项目监听从别的项目页面返回进行刷新.pdf

    APP中监听从别的项目页面返回进行刷新 摘要信息: APP中vue-h5项目监听从别的项目页面返回进行刷新是指在APP中使用vue-h5项目时,如何监听从别的项目页面返回进行刷新的操作。这个问题的解决方法是使用window.post...

    js监听浏览器关闭

    浏览器是客户端,客户端的操作服务器是监听不到的,所以可以用js来监听,js代码监听浏览器关闭或者刷新

    通过history解决ajax不支持前进/后退/刷新的问题

    1. AJAX与浏览器前进后退的问题: AJAX技术(Asynchronous JavaScript and XML)允许网页动态地更新内容,而无需重新加载整个页面。这种技术极大地提高了用户体验。然而,传统的浏览器历史记录功能(前进和后退按钮...

    JS针对浏览器窗口关闭事件的监听方法集锦

    // 关闭监听浏览器刷新、关闭的方法 UnloadConfirm.clear = function() { window.onbeforeunload = function() {}; }; UnloadConfirm.set(MSG_UNLOAD); ``` 这种方式通过创建一个对象`UnloadConfirm`来管理事件...

    flex 旋转/扫描/加载/效果图

    Flex是Adobe公司开发的一种开源框架,主要用于构建富互联网应用程序(RIA)。这个框架基于ActionScript编程语言,使用MXML和ActionScript进行开发,并且在Flash Player或Adobe AIR运行时环境中运行。"flex 旋转/扫描...

    Flex页面跳转.txt

    ### Flex页面跳转详解 #### 一、引言 在Flex开发中,页面跳转是一项基本且重要的功能,它能够帮助开发者实现应用内的导航逻辑,为用户提供流畅的使用体验。根据给定文件的信息,本文将深入探讨Flex页面跳转的各种...

    javascript判断页面是否是刷新还是关闭

    - `2` 表示页面是从浏览器历史记录或前进/后退按钮加载的。 - `255` 或其他值表示未知或自定义的导航类型。 示例代码: ```javascript var navigationType = window.performance.navigation.type; if ...

    禁止用户刷新,前进页面

    ### 禁止用户刷新,前进页面 在Web开发中,有时我们需要控制用户的某些操作行为,比如禁止用户刷新页面或防止他们使用浏览器的前进功能。这些需求通常出现在表单提交等场景下,目的是为了防止重复提交或其他不必要...

Global site tag (gtag.js) - Google Analytics