继续上一节...

1.Extjs5.0版Menu.

-将Extjs包引入MenuPage.html页。

2.前段用Extjs的MVC框架

-在根目录下创建app文件夹,文件夹下分别创建controller,model,store,view文件夹

-根目录下创建app.js文件

-view文件夹下创建MainLayout.js文件

-controller文件夹下创建MainController.js文件

3.菜单页面布局

-MainLayout.js代码

Ext.define('ZZH.view.MainLayout', {
extend: 'Ext.panel.Panel',
alias: 'widget.mainLayout',
layout: 'border',
initComponent: function () { // 底部
var topPanel = Ext.create('Ext.panel.Panel', {
region: 'north',
split: false,
margins: '0 0 0 0'
}); // 左边
var leftPanel = Ext.create('Ext.tab.Panel', {
layout: 'fit',
tabPosition: 'left',
region: 'west',
id: 'tabbar',
alias: 'tabbar',
width: 400,
items: [
{ title: '菜单1' },
{ title: '菜单2' },
{ title: '菜单3' },
{ title: '菜单4' },
{ title: '菜单5' },
{ title: '菜单6' },
{ title: '菜单7' }
]
}); //中心
var centerPanel = Ext.create('Ext.panel.Panel', {}); // 右侧
var resultPanel; this.items = [leftPanel, centerPanel, resultPanel]; this.callParent(arguments);
} });

-MainController.js代码

Ext.define('ZZH.controller.MainController', {
extend: 'Ext.app.Controller',
init: function (app) {
this.control({
});
},
views: ['MainLayout']
});

4.将MainLayout渲染到MenuPage.html里,并且加载地图

-app.js代码

-把app.js引用到MenuPage.html里

Ext.application({

    name: 'ZZH',

    appFolder: '../app',

    controllers: [
'MainController'
],
launch: function () {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
autoload: true,
items: [
{
xtype: 'mainLayout'
}
],
listeners: {
afterrender: {
fn: function (vp, eOpts) {
setTimeout('CreateSGWord()', 1);
}
}
}
});
}
});

-这里要注意的是CreateSGWord()函数,之前我们是在SkyMap.js文件中写到取Object控件是

document.getElementById("TerraExplorerX").setAttribute("classid", "CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1");

但我们后来加了Iframe,结构变了,代码也需要稍微改一下

SkyMap.js代码

//页面初始化函数
function CreateSGWord() {
window.parent.document.getElementById("TerraExplorerX").setAttribute("classid", "CLSID:3a4f9192-65a8-11d5-85c1-0001023952c1");
window.parent.document.getElementById("TerraExplorerX").style.display = "block";
sgworld = document.createElement("object");
sgworld.id = "sg";
sgworld.classid = "CLSID:3a4f9197-65a8-11d5-85c1-0001023952c1";
sgworld.Open("http://xx.xx.xx.xx/xxx.FLY");
}

5.运行

6.这时我们注意到,当点击菜单页后,再点击地图时,地图还是会给菜单覆盖掉(真是令人头疼哈)

-没有关系,我们将MenuPage.html里的代码改成如下。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title> <link href="../Scripts/ext-5.0.0/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css" rel="stylesheet" />
<script src="../Scripts/ext-5.0.0/ext-all.js"></script>
<script src="../app.js"></script>
<script src="../Scripts/SkyMap.js"></script>
<script type="text/javascript">
function Load() {
document.getElementById('btnhidden').focus(); //加载时,设置焦点
}
function MyFocus() {
if (document.all) {
window.document.onclick = new Function("return onClick(event);"); //当点击MenuPage.html时,再次聚焦
} else {
window.document.body.setAttribute("onclick", "return onClick(event);");
}
}
function onClick(ev) {
ev = ev || window.event;
var target = ev.target || ev.srcElement;
if (target && target.id && target.id == "PanelBox") {
}
else {
if (target.tagName == 'INPUT') {
if (target.role == 'checkbox') {
document.getElementById('btnhidden').focus(); //当点击checkbox的时候,再次聚焦
}
}
else { document.getElementById('btnhidden').focus(); }
}
}
</script>
</head>
<body onload="Load()" onclick="MyFocus()">
<input type="button" style="width:40px;z-index:-2;position:absolute;top:0px;left:0px;filter:alpha(opacity=0);" id="btnhidden" />
</body>
</html>

7.再次运行,菜单就永远不会消失啦。。^^

8.结束语

让HTML控件在OBJECT控件之上,着实是让我头疼了一阵子,但还是解决了,相信有更好的办法,

有更好的办法,希望能告诉我,互相学习。。^^

最新文章

  1. C#多态“说来也说”——逻辑层BLL中的多态使用
  2. java基础复习 - 自动装箱
  3. iptables nt
  4. Activiti系列:如何把Activiti工程转换为maven工程以解决依赖项找不到的问题
  5. Java 基础学习1 -- 基础语法
  6. 复杂对象创建终结者(Builder Pattern)
  7. 多维数组遍历PHP
  8. PHP简单获取数据库查询结果并返回JSON
  9. 《JS权威指南学习总结--6.1原型》
  10. nodejs里的module.exports和exports
  11. Linux下实现视频读取(三)---Buffer的准备和数据读取
  12. CSS圆环百分比DEMO
  13. (转)基于微软平台IIS/ASP.NET开发的大型网站有哪些?
  14. UML学习笔记(五)--顺序图
  15. linux日常管理
  16. [TFS]TFS2015禁止多人迁出设置
  17. TOJ4439微积分――曲线积分(数学,模拟)
  18. Integer.valueOf
  19. 死磕salt系列-salt配置文件
  20. 作业 20181016-1 Alpha阶段贡献分配规则

热门文章

  1. linux----------ab--性能测试工具
  2. Ubuntu14.04运行行roscore错误
  3. python利用redis构成一个队列
  4. oracle事物
  5. python之编写三层菜单(第一天)
  6. python 查找指定内容的txt文件
  7. REST WCF Service中的WebMessageBodyStyle
  8. c#控制台調用SSIS包互传值
  9. Linux命令的返回码列表
  10. JAVA应用程序占用CPU、内存过高分析过程