我正在开发一个使用Extjs组件、PHP和MySQL的Web应用程序。我希望在iPad上正确显示我的应用程序。是否有特殊的CSS规则或meta标签?
我正在开发一个使用Extjs组件、PHP和MySQL的Web应用程序。我希望在iPad上正确显示我的应用程序。是否有特殊的CSS规则或meta标签?
您的问题比较模糊。以下是一些在iOS上开发Web应用程序的提示:
<meta>
标签告诉移动Safari您的网站应该是多宽,类似于:<meta name = "viewport" content = "width = 320, initial-scale = 2.3, user-scalable = no">
<meta>
标签列表在这里。我还没有测试过它,但我编写了这个脚本,在长按1.5秒或更长时间后触发元素的contextmenu事件。试一下吧。
更新:终于有机会测试了一下,它按预期工作。由于延迟时间对我来说似乎太长了,我将延迟时间从1500毫秒降低到了1200毫秒。
(function() {
var EM = Ext.EventManager,
body = document.body,
activeTouches = {},
onTouchStart = function(e, t) {
var be = e.browserEvent;
Ext.id(t);
if(be.touches.length === 1) {
activeTouches[t.id] = fireContextMenu.defer(1200, null, [e, t]);
} else {
cancelContextMenu(e, t);
}
},
fireContextMenu = function(e, t) {
var touch = e.browserEvent.touches[0];
var me = document.createEvent("MouseEvents");
me.initMouseEvent("contextmenu", true, true, window,
1, // detail
touch.screenX,
touch.screenY,
touch.clientX,
touch.clientY,
false, false, false, false, // key modifiers
2, // button
null // relatedTarget
);
t.dispatchEvent(me);
},
cancelContextMenu = function(e, t) {
clearTimeout(activeTouches[t.id]);
};
if(navigator.userAgent.match(/iPad/i) != null) {
Ext.onReady(function() {
EM.on(body, "touchstart", onTouchStart);
EM.on(body, "touchmove", cancelContextMenu);
EM.on(body, "touchend", cancelContextMenu);
});
}
})();