首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >快照视图窗口8 javascript

快照视图窗口8 javascript
EN

Stack Overflow用户
提问于 2013-01-28 20:17:45
回答 1查看 381关注 0票数 1

在我的项目中,我们使用快照视图,问题是如果我们在homepage.js中使用快照视图,它将影响所有页面

代码语言:javascript
运行
复制
 window.addEventListener("resize", onResize,false);

这段代码在我们抓取的所有页面上调用。

代码语言:javascript
运行
复制
 (function () {
 "use strict";
 var pageName = "homePage";
 WinJS.UI.Pages.define("/pages/home/home.html", {
    ready: function (element, options) {
 window.addEventListener("resize", onResize,false);
}

function onResize() {
var pageName = "homePage";    
 if (Windows.UI.ViewManagement.ApplicationView.value ==  Windows.UI.ViewManagement.ApplicationViewState.fullScreenLandscape) {

     var UsrName = localStorage.getItem("username");
     var parameters = "'strUserName':'" + UsrName + "'";
     ServiceCall("GetAllDeals", parameters, pageName);
     var UsrName = localStorage.getItem("username");
     var UId = localStorage.getItem("UserID");
     var parameters = "'strUserName':'" + UsrName + "','UserID':'" + UId + "'";
     ServiceCall("TrackDeals", parameters, pageName);

}

}

这是我们在主页中使用的代码,但当我们在像trackpage.js这样的其他页面中,当我们捕捉该页面并取消捕捉时,我们将返回到homepage.js onResize function service call.how来避免这种情况,并仅在当前页面上实现.please,如果此代码中有任何错误,请让我知道。

EN

回答 1

Stack Overflow用户

发布于 2013-01-28 21:08:19

由于onResize函数已添加到窗口对象中,因此如果不希望在窗口更改大小时调用该函数,则必须将其移除。即使您可能会离开home.html,事件仍然是连接的。这就是SPA风格的应用程序的工作方式,包括现代Win8应用程序。

要解决此问题,您有两个选择,您可以在导航发生之前使用以下命令进行处理:

代码语言:javascript
运行
复制
WinJS.Navigation.onbeforenavigate = function () { window.removeEventListener('resize', onresize);};

或者您可以使用WinJS页面卸载函数来处理它:

代码语言:javascript
运行
复制
WinJS.UI.Pages.define("/pages/home/home.html", {
        unload: function() {window.removeEventListener('resize', onresize);},
        // rest of Page code, including Ready goes here
}

哪一个最适合你。onbeforenavigate在卸载之前触发,如果这对你很重要的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14561884

复制
相关文章

相似问题

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