gpt4 book ai didi

javascript - 快照 View windows 8 javascript

转载 作者:行者123 更新时间:2023-11-30 18:11:09 24 4
gpt4 key购买 nike

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

 window.addEventListener("resize", onResize,false);

此代码在我们捕捉的所有页面上调用。

 (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 函数服务调用。如何避免这种情况, 并仅在当前页面上实现。如果此代码中有任何错误,请告诉我。

最佳答案

因为onResize函数是添加到window对象上的,所以如果不想在窗口改变大小时调用onResize函数,就必须去掉它。即使您可能离开 home.html,该事件仍处于连接状态。这正是 SPA 风格应用程序的工作方式,包括现代 Win8 应用程序。

要解决这个问题,您有两个选择,您可以在导航发生之前处理它:

WinJS.Navigation.onbeforenavigate = function () { window.removeEventListener('resize', onresize);};

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

WinJS.UI.Pages.define("/pages/home/home.html", {
unload: function() {window.removeEventListener('resize', onresize);},
// rest of Page code, including Ready goes here
}

哪一个最适合您。 onbeforenavigate 在卸载前触发(如果这对您很重要的话)。

关于javascript - 快照 View windows 8 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561884/

24 4 0
文章推荐: javascript - 使用 javascript 在同一选项卡中打开 url
文章推荐: javascript - 验证 Ember.js 架构
文章推荐: javascript - 单击
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com