成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何將Gate One嵌入我們的Web應用中

大數(shù)據(jù)
從https://github.com/liftoff/GateOne下載的Gate One源代碼中,在gateone/tests/hello_embedded中有關于如何將Gate One嵌入我們應用的指導說明。本篇隨筆就是根據(jù)該指導進行處理,然后寫的筆記。

參考文檔http://liftoff.github.io/GateOne/Developer/embedding.html

 從https://github.com/liftoff/GateOne下載的Gate One源代碼中,在gateone/tests/hello_embedded中有關于如何將Gate One嵌入我們應用的指導說明。本篇隨筆就是根據(jù)該指導進行處理,然后寫的筆記。

 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>

***調(diào)用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>

 

2. 進階嵌入方式

調(diào)用GateOne.init()方法不只可以傳遞Gate One服務的URL,我們可以傳遞其他的參數(shù)來自定義嵌入的GateOne服務內(nèi)容。例如,theme用于設置Gate One的主題,style用于自定義Gate One的樣式。我們在上面的基本應用代碼中修改GateOne.init()方法的調(diào)用參數(shù)如下,

GateOne.init({
    url: 'https://127.0.0.1',
    embedded: true,
    // Let's apply some custom styles while we're at it ...
    style: { 'background-color': 'yellowgreen', 'box-shadow': '0 0 40px blueViolet'}
});

然后訪問我們的應用得到如下效果,

 

我們看到嵌入的Gate One背景色變成了綠色,說明我們傳遞的style樣式生效了。但是,等等。。。

我們發(fā)現(xiàn)一個很大的問題,嵌入的Gate One沒有了之前打開Terminal的按鈕,于是我們根本無法使用Gate One的網(wǎng)頁Terminal功能了。這個是embedded參數(shù)的作用!當將embedded參數(shù)設置成true,表示只將Gate One初始化到頁面中而不讓Gate One做任何事情。于是,我們需要通過代碼顯示得讓Gate One做事情,例如我們通過一個按鈕來讓Gate One打開一個Terminal,代碼如下所示,

<form id="add_terminal">
     <input type="submit" value="Add a Terminal" style="margin-left: .Sem;"></input>
</form>
<script>
      document.querySelector('#add_terminal').onsubmit = function(e) {
          // Don't actually submit the form
          e.preventDefault(); 
          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');
          if (!existingContainer) {
             gateone.appendChild(container);
          } else {
             container = existingContainer;
          }
          // Create the new terminal
          termNum = GateOne.Terminal.newTerminal(null, null, container); 
      }
</script>

此時我們便可以通過點擊”Add a terminal“按鈕來新建一個Terminal,效果如下圖所示,

 

3 GateOne.init()回調(diào)自動創(chuàng)建Terminal

GateOne.init()方法可以提供一個回調(diào)函數(shù),該回調(diào)函數(shù)會在Gate One初始化完成之后自動調(diào)用。于是,我們可以在該回調(diào)函數(shù)中自動創(chuàng)建一個Terminal。其JavaScript代碼如下,

[[152270]] callbackInit.js

在創(chuàng)建新Terminal的方法newTerminal中使用到了GateOne.Base.superSandbox()。該方法用于包裝任何代碼,而該代碼會一直等待到其所有依賴被加載完畢才會執(zhí)行。上面代碼創(chuàng)建新Terminal的實際代碼會等待GateOne.Terminal和GateOne.Terminal.Input加載完畢才會執(zhí)行。

責任編輯:李英杰 來源: 博客園
相關推薦

2015-10-14 09:43:09

LinuxMintGate One安裝

2022-11-25 16:27:07

應用開發(fā)鴻蒙

2020-01-15 12:03:03

優(yōu)化架構(gòu)性能

2021-11-24 15:20:04

FreeDOSLinux

2019-07-15 16:00:24

Docker架構(gòu)容器

2022-11-21 07:54:32

安全護欄應用安全程序

2019-07-15 10:00:53

DockerJava容器

2011-05-04 09:29:22

2010-09-09 14:07:32

2024-05-30 08:40:41

大型語言模型LLM人工智能

2023-12-12 16:46:44

AI云團隊云管理

2020-08-21 10:59:10

微軟服務器運維

2010-06-08 12:54:16

UML技術

2021-09-14 14:50:05

SASTDevSecOps應用安全

2018-10-22 14:48:39

KafkaHadoop代碼

2020-05-25 07:00:58

Raspberry PWeb服務器

2017-03-16 21:27:45

編程測試編碼

2022-12-09 08:34:38

嵌入式Web容器

2019-12-30 21:50:16

物聯(lián)網(wǎng)暖通空調(diào)IOT

2020-12-14 22:42:32

Linux終端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩三级在线观看 | 婷婷毛片 | 成人不卡视频 | 野狼在线社区2017入口 | 成人美女免费网站视频 | 成人av一区二区在线观看 | www.se91| 精品免费视频 | 中文字幕av高清 | 美女中文字幕视频 | 久久伊人亚洲 | 99精品国产一区二区三区 | 91免费小视频 | 日韩在线免费视频 | 成人精品久久 | 91精品久久久久久久久久 | 国产精品亚洲精品日韩已方 | www.精品国产 | 国产精彩视频一区 | 国产亚洲欧美另类一区二区三区 | 久久久久久久国产 | 久久99精品久久久久久 | 狠狠色综合久久婷婷 | 91免费看片| 成人免费观看男女羞羞视频 | 欧美精品一区二区三区在线播放 | 欧美精品一区三区 | 久久久久久久久99 | 99久久亚洲 | 久久精品免费观看 | 成人亚洲精品久久久久软件 | 欧美高清一区 | 激情免费视频 | 九九热精品视频 | 亚洲第一视频 | 亚洲天天 | 欧美日韩在线观看一区二区三区 | 91人人看 | 成人精品久久 | 一区二区三区在线观看视频 | 精品福利在线 |