我应该在哪里用javascript存储我的窗口维度
Where should I store my window dimensions in javascript?
我会根据所选项目的类型弹出不同大小的Telerik RadWindows。每种类型的项目都有自己的编辑表单,点击时会弹出,所以我需要在Javascript中设置不同的窗口高度和宽度。现在我正在使用这个函数,它有每种类型的硬编码尺寸:
function GetEditWindowDimensions(type) {
var dimensions = null;
switch (type) {
case 'Type1':
dimensions = { length: 330, width: 400 };
break
case 'Type2':
dimensions = { length: 550, width: 450 };
break;
case 'Type2':
dimensions = { length: 260, width: 400 };
break;
case 'Type3':
dimensions = { length: 260, width: 400 };
break;
case 'Type4':
dimensions = { length: 260, width: 400 };
break;
case 'Type5':
dimensions = { length: 330, width: 400 };
break;
default:
dimensions = { length: 500, width: 500 };
}
return dimensions
}
这是我加载RadWindow的函数:
function OpenEditWindow(type) {
var oDimensions = GetEditWindowDimensions(type)
var oWindow = openWindow('myurl.aspx', oDimensions.length, oDimensions.width, true);
oWindow.MoveTo(200, 25);
}
必须有更好的方法来做到这一点。你对我如何在Javascript中以可配置的方式存储/检索这些维度有什么想法吗?类型本身由项目中.vb文件中的枚举定义。我将枚举值名称传递给GetEditWindowDimensions()。
提前感谢!
您可以将其存储在一个对象中,例如:
var dimensions = {
'Type1': { length: 330, width: 400 },
'Type2': { length: 550, width: 450 },
'Type3': { length: 260, width: 400 }
}
然后像一样访问它们
dimensions.type1.length; // <-- 330
dimensions.type1.width; // <-- 400
为什么不创建一个哈希?
var dWindowDimensions = }
Type1: { length: 330, width: 400 },
Type2: { length: 550, width: 450 },
...
}
然后,当您需要读取值时:
var oDimensions = dWindowDimensions[type]
只需像这样存储它们:
dimensions = {
Type1: {
length: 330,
width: 400
},
...
...
Type5: {
length: 330,
width: 400
}
};
然后,如果您正在动态查找它们,则可以通过执行dimensions.Type1
或dimensions[type]
来访问它们。对于默认情况,只需检查您尝试访问的维度是否为undefined
。如果是,请使用默认的长度和宽度。例如:
var dimension = dimensions[type];
if(typeof dimension === "undefined") {
dimension = {
length: 500,
width: 500
};
}
或者更简洁:
var dimension = dimensions[type] || {length: 500, width: 500};
如果第一个值不是"truthy",则将使用第二个值(||
之后的值)。
相关文章:
- 如何使用特定大小的浏览器窗口打开我的页面
- 为什么不'我的窗口滚动事件根本没有启动.其他答案没有解决问题
- 在我的应用程序中,当我使用targent as_blank时,弹出窗口被阻止
- 我应该在哪里用javascript存储我的窗口维度
- 谷歌扩展:如何在弹出窗口中按下按钮时在我的javascript文件中运行函数
- 新窗口重定向到我的主页
- 在我的情况下,如何打开新的弹出窗口
- 使用窗口对象练习我的对象文字函数
- 与我的jquery弹出窗口和自动调整文本区域大小有冲突
- 为什么我的firefox扩展javascript不能访问opener窗口,也看不到window.name
- 如何使用jQuery UI检测我拖到窗口外的内容
- 为什么我的html弹出窗口显示我的函数的文本,而不是运行它们
- 为什么我的URL在JavaScript中被调用为弹出窗口
- 如果在外部单击,则隐藏弹出窗口.为什么我的脚本没有'不起作用
- AngularJS错误:$injector:modulerr我的浏览器窗口中出现模块错误
- 为什么我需要让我的电子窗口比我的画布大
- Javascript - 如何检测我的弹出窗口何时访问我的网站
- 如何将 jquery 动画应用于我的弹出窗口
- 我的新窗口无法运行
- 我的弹出窗口没有显示(Javascript/PHP).怎么了