如何将Gate One嵌入我们的Web应用中
2015-10-16 01:16
1211 查看
参考文档http://liftoff.github.io/GateOne/Developer/embedding.html
从https://github.com/liftoff/GateOne下载的Gate One源代码中,在gateone/tests/hello_embedded中有关于如何将Gate One嵌入我们应用的指导说明。本篇随笔就是根据该指导进行处理,然后写的笔记。
如果还没有安装Gate One,可以先参考我之前的随笔“LinuxMint系统下Gate One的安装指南”进行安装。
然后我们将Gate One源码中的gateone.js拷贝到我们web应用中,然后在我们的html中引入进来。或者直接使用使用Gate One服务上的gateone.js,如下所示,
最后调用GateOne.init()将我们Gate One嵌入我们的Web应用。
一个简单的示例代码和效果图如下所示,
callbackInit.js
在创建新Terminal的方法newTerminal中使用到了GateOne.Base.superSandbox()。该方法用于包装任何代码,而该代码会一直等待到其所有依赖被加载完毕才会执行。上面代码创建新Terminal的实际代码会等待GateOne.Terminal和GateOne.Terminal.Input加载完毕才会执行。
(done)
从https://github.com/liftoff/GateOne下载的Gate One源代码中,在gateone/tests/hello_embedded中有关于如何将Gate One嵌入我们应用的指导说明。本篇随笔就是根据该指导进行处理,然后写的笔记。
如果还没有安装Gate One,可以先参考我之前的随笔“LinuxMint系统下Gate One的安装指南”进行安装。
1. 基本嵌入方式
首先先使用一个div来存放我们的Gateone,如下所示,<div id="gateone_container" style="position: relative; width: 60em; height: 30em;"> <div id="gateone"></div> </div>
然后我们将Gate One源码中的gateone.js拷贝到我们web应用中,然后在我们的html中引入进来。或者直接使用使用Gate One服务上的gateone.js,如下所示,
<script src="https://127.0.0.1/static/gateone.js"></script>
最后调用GateOne.init()将我们Gate One嵌入我们的Web应用。
一个简单的示例代码和效果图如下所示,
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Basic Embedding Gate One</title>
<script src="../static/gateone.js"></script>
<script>
window.onload = function() {
// Initialize Gate One:
GateOne.init({url: 'https://127.0.0.1'});
}
</script>
</head>
<body>
<div>Hello lienhua34</div>
<!-- Decide where you want to put Gate One -->
<div id="gateone_container" style="position: relative; width: 60em; height: 30em;"> <div id="gateone"></div> </div>
</body>
</html>
var newTerminal = function() { // Introducing the superSandbox()! Use it to wrap any code that you don't want to load until dependencies are met. // In this example we won't call newTerminal() until GateOne.Terminal and GateOne.Terminal.Input are loaded. GateOne.Base.superSandbox("NewExternalTerm", ["GateOne.Terminal", "GateOne.Terminal.Input"], function(window, undefined) { "use strict"; var existingContainer = GateOne.Utils.getNode('#'+GateOne.prefs.prefix+'container'); var container = GateOne.Utils.createElement('div', { 'id': 'container', 'class': 'terminal', 'style': {'height': '100%', 'width': '100%'} }); var gateone = GateOne.Utils.getNode('#gateone'); // Don't actually submit the form if (!existingContainer) { gateone.appendChild(container); } else { container = existingContainer; } // Create the new terminal termNum = GateOne.Terminal.newTerminal(null, null, container); }); }; // Uses newExternalTerminal as GateOne.init()'s callback. // The callback will be called after Gate One is initialized. window.onload = function() { // Initialize Gate One: GateOne.init({ url: 'https://127.0.0.1', embedded: true, }, newTerminal); };
callbackInit.js
在创建新Terminal的方法newTerminal中使用到了GateOne.Base.superSandbox()。该方法用于包装任何代码,而该代码会一直等待到其所有依赖被加载完毕才会执行。上面代码创建新Terminal的实际代码会等待GateOne.Terminal和GateOne.Terminal.Input加载完毕才会执行。
(done)
相关文章推荐
- java并发(三十四)协程kilim
- 《代码的未来》读书笔记:也谈闭包
- 几个反垃圾邮件的词汇(XBL,SBL,PBL,ROKSO)
- angularJS配合bootstrap动态加载弹出提示内容
- Tomcat Session 共享 方法
- Android计时器和倒计时
- unity警告“Tiled GPU perf. warning: RenderTexture color surface (0x0) was not cleared/discarded, doin”
- lamp环境搭建
- 循环双链表的简单操作
- install pyspider
- 面向过程,面向对象,函数式对同一个问题的思考方式
- 在移动端如何选择字体大小和布局的单位,px或dp?
- easyui实现datagrid行内编辑
- Shell脚本实现超简洁的在Linux服务器上安装nginx、resin、java、tomcat、redis等程序
- Unity项目开发准则(转)
- 一些比较优秀的代码总结
- struts2+easyui实现根据条件检索信息
- git 查看分支
- 014-预处理指令-C语言笔记
- android 16 带返回值的activity