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. blfs(systemd版本)学习笔记-配置远程连接显示中文

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 远程连接的lfs系统需要具备以下环境便可在xshell或其他远程终端上面显示中文: 1.lfs主机设置中文编码(需要配置) 2. ...

  2. 3038 3n+1问题

    3038 3n+1问题  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 3n+1问题是一个简单有趣而又没有 ...

  3. python小练习:用户三次登陆, 购物车

    2018.12.1 周末练习: 1.用户三次登陆 from random import randint i = 1 while i < 4: num = 0 verify_code = '' w ...

  4. (网页)JS编程中,有时需要在一个方法返回两个个或两个以上的数据

    转自脚本之家: 1 使用数组的方式,如下: <html> <head> <title>JS函数返回多个值</title> </head> & ...

  5. python学习第一周(1)

    备注:一般规范代码,可以操作code-reformat code 1. #!/usr/bin/env python 脚本语言第一行 作用:文件中代码用指定可执行程序运行,在unix类的操作系统才有意义 ...

  6. 查看python版本

    1.未进入python shell python --version 2.进入python shell,有两种方法 (1) help() (2) import sys sys.version

  7. Excel快捷键大全 Excel2013/2010/2007/2003常用快捷键大全

    一个软件最大的用处是提高工作效率,衡量一个软件的好坏,除了是否出名之外,最主就是能否让一个新手更快的学会这个软件和提高工作速度.就拿Excel表格来说吧,平常办公中我们经常会用它来制作表格,统计数据或 ...

  8. python第十二天 生成器,迭代器,内置函数

    第二模块学习:  生成器,迭代器,内置函数 生成器特点:只有在调用时才会生成相应的数据,运行的速度快! 示例: def fil(max):#斐波那契数 n,a,b=0,0,1 #定义初始数据 whil ...

  9. February 3rd, 2018 Week 5th Saturday

    Life takes on the meaning that you give it. 你赋予生活什么,生活就是什么样子. I always wonder why on earth I am here ...

  10. JDBC lesson 1

    https://www.mkyong.com/tutorials/jdbc-tutorials/ 1.jdbc基本概念 Java Database Connectivity (JDBC)是一套提供数据 ...