SkylineGlobe的PopupMessage里面嵌入的网页如何与主页面交互通讯
1.主页面调用PopupMessage,如果需要传值,就是普通的页面间的传值就可以实现了。
a.html页面调用PopupMessage创建方法,url传入b.html?x=111&y=22;
然后在b.html接收解析就可以了;
// GetParamValue
function GetParamValue(findParam, defaultValue)
{
var arr = document.location.href.split("?");
if (arr.length <= 1) return defaultValue;
arr = arr[1].split("&");
for (var i = 0; i < arr.length; i++) {
if (arr[i].indexOf(findParam) == 0 && arr[i].indexOf("=") == findParam.length) {
arr = arr[i].split("=");
return arr[1];
}
}
return defaultValue;
}
2.PopupMessage里面嵌入的子页面如何调用主页面上的变量和函数方法呢?
或者说如何实现主页面调用PopupMessage中嵌入的子页面中的变量或者函数方法呢?
一些刚接触SkylineGlobe的开发者可能会比较困惑,但早在十几年前,Skyline就已经提供了终极解决办法。
只不过没有把这个接口升级成最新版本的,使用这个接口的时候,需要定义一个老版本的TE对象。
如果你的Skyline起点就是6之后的版本,可能会错过这个IScriptEngine接口。
具体实现示例代码如下:
A页面是主页面,B页面是嵌入PopupMessage中的子页面,
A页面上的代码如下:
var ttt = "ttt11";
function OnLoadFinished() {
//var TE = _$SGCreateTEObj();
var TE = TEX1.CreateInstance("TerraExplorerX.TerraExplorer");
var IScriptEngine = TE.interface("IScriptEngine5");
try { IScriptEngine.UnregisterName("ContentCreatorWindow"); } catch (e) { }
try { IScriptEngine.RegisterGlobalName("ContentCreatorWindow", window); } catch (e) { }
}
/*利用IScriptEngine接口的GetGlobalName方法,获取B页面的Window对象*/
function test4() {
//var TE = _$SGCreateTEObj();
var TE = TEX1.CreateInstance("TerraExplorerX.TerraExplorer");
var IScriptEngine = TE.interface("IScriptEngine5");
var test = IScriptEngine.GetGlobalName("++ToolsEditorWindow");
alert(test.aaa);//得到html1页面中的aaa全局变量;
} /*定义Skyline5版本的TE Object*/
function $(id) {
return window.document.getElementById(id);
}
function _$SGCreateTEObj() {
var obj = $("TE");
if (obj == null) {
obj = document.createElement('object');
document.body.appendChild(obj);
obj.name = "TE";
obj.id = "TE";
obj.classid = "CLSID:3a4f9191-65a8-11d5-85c1-0001023952c1";
}
return obj;
}
B页面上的代码如下:
var aaa = "aaa";
function Init()
{
var TE = _$SGCreateTEObj();
var IScriptEngine = TE.interface("IScriptEngine5");
try { IScriptEngine.UnregisterName("ToolsEditorWindow"); } catch (e) { }
try { IScriptEngine.RegisterGlobalName("ToolsEditorWindow", window); } catch (e) { alert("error RegisterGlobalName: ToolsEditorWindow") }
}
/*利用IScriptEngine接口的GetGlobalName方法,获取A页面的Window对象*/
function TestSE()
{
var TE = _$SGCreateTEObj();
var IScriptEngine = TE.interface("IScriptEngine5");
var test = IScriptEngine.GetGlobalName("++ContentCreatorWindow");
alert(test.ttt);//得到A页面中的ttt全局变量;
}
看到上面的代码感觉如何?是的,就这么简单!
SkylineGlobe的PopupMessage里面嵌入的网页如何与主页面交互通讯的更多相关文章
- 博客代码:iframe—网页中嵌入其他网页
iframe 是一个可以把另外一个网页嵌入到一个网页里的代码,非常有用.对于一个内容不错的网页,要方便地把它搬到自己的博客里,用这个代码最合适.而对于在新浪博客里不支持的一些网页效果和代码,可先把他们 ...
- Nodejs进阶:如何将图片转成datauri嵌入到网页中去
问题:将图片转成datauri 今天,在QQ群有个群友问了个问题:"nodejs读取图片,转成base64,怎么读取呢?" 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即 ...
- Unity3d嵌入web网页
应用场景 程序中的界面风格 UI内容等相关内容需要很容易方便的跟新替换,不使用unity传统的热加载方式,也不想使用和H5等做混合APP的时候, 就用嵌入web来实现. 假如我想替换某个背景图,一般来 ...
- 使用Data URL将图片嵌入到网页中
早些时候,使用IE6浏览器,网页可以另存为mht,如果网页包含图片,那么图片也会存储到mht中. mht是微软提供的一种聚合HTML文档,它的本质其实是一个文本文件,那么我们也许会好奇,它的图片存储到 ...
- 嵌入在网页上Flash媒体播放器(1)
做的项目,在不久的将来相关的Flash玩家使用,需要播放视频的网页上,不同的视频资源,需要不同的球员.基于使用稳定性.的嵌入式和嵌入式复杂性能的优点概括起来有两种方式(不同的玩家),视频资源也略有不同 ...
- 【WPF】使用CefSharp嵌入HTML网页
需求:WPF项目中要做用户的商铺主页,由于考虑到每个商家的主页布局各不相同,不能用XAML写死布局.最好的办法是WPF这边XAML写好一个容器,用户使用HTML可视化编辑器(比如这个)来准备好网页,输 ...
- 获取Google地图位置坐标并嵌入到网页
有时候做网页的时候,可能需要一个地图显示,可能会用到Google地图,所以就分享一下get到的新技能.在网上查资料的时候有这种方式 但是我没做成功,所以找了其他的方式. 首先,打开Google地图,查 ...
- WinForm嵌入Web网页的解决方案
企业级信息化系统绝大部分采用BS架构实现,如门户网站.OA系统.电商网站等,通过浏览器输入Web网址即可访问,对于使用者来说非常便捷,对于开发维护者来说也非常方便,程序维护只需更新服务器即可,使用者无 ...
- 测试嵌入GeoGebra网页
使用 http://ggbstudy.top/tools/ggb2html/ 将GGB文件免费托管,然后在博客内容中点击“HTML”按钮插入GGB网页地址: <iframe src=" ...
随机推荐
- curl 发送 post 请求
curl -i -X POST -H 'Content-type':'application/json' -d '{"keyWord":"雅诗兰黛"," ...
- MySQl创建用户和授权
权限的管理: 如何创建用户和密码 给当前的用户授权 移除当前用户的权限 首先进去到mysql数据库下: mysql> use mysql Database changed 其次, 对新用户进行增 ...
- FIFO、LRU、LFU的含义和原理
含义: FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用 LFU:Least Frequently Used,最不经常使用 以上三者 ...
- vue.js及项目实战[笔记]— 05 WebPack
一. 历史介绍 1. 规范 AMD Commonjs||CMD UMD 参考:认识AMD.CMD.UMD.CommonJS 2. 工具 npm bower webpack browserify 参考: ...
- tkinter中Radiobutton单选框控件(七)
Radiobutton控件 由于本次内容中好多知识都是之前重复解释过的,本次就不做解释了.不太清楚的内容请参考tkinter1-6节中的内容 import tkinter wuya = tkinter ...
- 03-14_WLST配置现有的Domain
本文重点: WLST在线模式配置现有的domains. WLST离线模式配置现有的domains. 1.WLST在线模式配置现有的domains 由于和一个活动的domain进行交互, ...
- SVN与Git比较的优缺点差异
目录: SVN与Git比较(一)集中式vs分布式 SVN与Git比较(二)版本库与工作区 SVN与Git比较(三)全局版本号和全球版本号 SVN与Git比较(四)部分检出 SVN与Git比较(五)更新 ...
- 4.6Python多版本存在问题
返回总目录 目录: 1.展示效果: 2.操作流程: (一)展示效果: 1.多个版本python运行的情况: 2.多个版本pip运行的情况: (二)操作流程: 1.很关键的一条语句: pythonx.x ...
- 4.5Python数据类型(5)之列表类型
返回总目录 目录: 1.列表的定义 2.列表的常规操作 3.列表的额外操作 (一)列表的定义: 列表的定义 [var1, var2, --, var n ] # (1)列表的定义 [var1, var ...
- linux运行apache出现403错误
1.文档权限问题,这是linux操作系统下经常会遇到的问题,需要使用chmod的指令把网站所在目录的权限提升到755.2.SElinux,开启它也会导致403错误的产生. 查看SELinux状态:1. ...