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里面嵌入的网页如何与主页面交互通讯的更多相关文章

  1. 博客代码:iframe—网页中嵌入其他网页

    iframe 是一个可以把另外一个网页嵌入到一个网页里的代码,非常有用.对于一个内容不错的网页,要方便地把它搬到自己的博客里,用这个代码最合适.而对于在新浪博客里不支持的一些网页效果和代码,可先把他们 ...

  2. Nodejs进阶:如何将图片转成datauri嵌入到网页中去

    问题:将图片转成datauri 今天,在QQ群有个群友问了个问题:"nodejs读取图片,转成base64,怎么读取呢?" 想了一下,他想问的应该是 怎么样把图片嵌入到网页中去,即 ...

  3. Unity3d嵌入web网页

    应用场景 程序中的界面风格 UI内容等相关内容需要很容易方便的跟新替换,不使用unity传统的热加载方式,也不想使用和H5等做混合APP的时候, 就用嵌入web来实现. 假如我想替换某个背景图,一般来 ...

  4. 使用Data URL将图片嵌入到网页中

    早些时候,使用IE6浏览器,网页可以另存为mht,如果网页包含图片,那么图片也会存储到mht中. mht是微软提供的一种聚合HTML文档,它的本质其实是一个文本文件,那么我们也许会好奇,它的图片存储到 ...

  5. 嵌入在网页上Flash媒体播放器(1)

    做的项目,在不久的将来相关的Flash玩家使用,需要播放视频的网页上,不同的视频资源,需要不同的球员.基于使用稳定性.的嵌入式和嵌入式复杂性能的优点概括起来有两种方式(不同的玩家),视频资源也略有不同 ...

  6. 【WPF】使用CefSharp嵌入HTML网页

    需求:WPF项目中要做用户的商铺主页,由于考虑到每个商家的主页布局各不相同,不能用XAML写死布局.最好的办法是WPF这边XAML写好一个容器,用户使用HTML可视化编辑器(比如这个)来准备好网页,输 ...

  7. 获取Google地图位置坐标并嵌入到网页

    有时候做网页的时候,可能需要一个地图显示,可能会用到Google地图,所以就分享一下get到的新技能.在网上查资料的时候有这种方式 但是我没做成功,所以找了其他的方式. 首先,打开Google地图,查 ...

  8. WinForm嵌入Web网页的解决方案

    企业级信息化系统绝大部分采用BS架构实现,如门户网站.OA系统.电商网站等,通过浏览器输入Web网址即可访问,对于使用者来说非常便捷,对于开发维护者来说也非常方便,程序维护只需更新服务器即可,使用者无 ...

  9. 测试嵌入GeoGebra网页

    使用 http://ggbstudy.top/tools/ggb2html/ 将GGB文件免费托管,然后在博客内容中点击“HTML”按钮插入GGB网页地址: <iframe src=" ...

随机推荐

  1. python爬虫入门---第四篇:网站对爬虫的限制及突破测试

    大部分网站对网络爬虫都有限制,限制方式有两种: 一.Robots协议:二.网站通过判断对网站访问http的头部信息来查看是否是爬虫,并对爬虫做相关拦截 第一种限制是书面限制,第二种是强制性阻拦限制.那 ...

  2. 两年AI研究经验(教训)总结,进来看看吧!

    https://www.jianshu.com/p/2149c9fee166 摘要: 本文以过来人的身份将自身2年的研究经验做了一下分享,希望本文对于即将开始从事人工智能研究的朋友有所帮助. 人工智能 ...

  3. Loadrunner 脚本录制-通过代理录制脚本

    脚本录制-通过代理录制脚本 by:授客 QQ:1033553122 版本:Loadruner 11.0 A.PC端录制Web应用程序 步骤1:根据实际情况,选择对应的协议 本例中选择Web(HTTP/ ...

  4. Linux 学习笔记之超详细基础linux命令(the end)

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14---------------- ...

  5. 自定义合并列:el-table

    objectSpanMethod({ row, column, rowIndex, columnIndex }) {//合并规则 //当前行row.当前列column.当前行号rowIndex.当前列 ...

  6. [20171225]查看并行执行计划注意的问题.txt

    [20171225]查看并行执行计划注意的问题.txt --//如果使用dbms_xplan.display_cursor查看并行执行计划注意一些问题,通过例子说明: 1.环境: SCOTT@book ...

  7. 【第四篇】SAP ABAP7.5x新语法之CREATE DATA&INTERFACE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之CREATE DA ...

  8. HTTP请求行、请求头、请求体详解(转)

    转自 https://blog.csdn.net/u010256388/article/details/68491509/     HTTP请求报文解剖 HTTP请求报文由3部分组成(请求行+请求头+ ...

  9. 使用Python语言理解递归

    递归 一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃. 递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面 ...

  10. [MapReduce_5] MapReduce 中的 Combiner 组件应用

    0. 说明 Combiner 介绍 &&  在 MapReduce 中的应用 1. 介绍 Combiner: Map 端的 Reduce,有自己的使用场景 在相同 Key 过多的情况下 ...