2014-11-23 58 views
0

我在寫燒瓶web應用程序。這是我的一個Web應用程序頁面的內容。將一個預標籤內容複製到另一個按鈕上

我想要的是將按鈕單擊時將ID爲「editor2」的預標籤的內容複製到「editor1」。我正在使用ace編輯器。

{% extends "layout.html" %} 
{% block content %} 

<pre id="editor1" style="width: 600px; height: 500px; display: inline-block;"></pre> 

<button type="button" onclick="fork()" class="btn btn-primary" style="vertical-align: middle;">Fork</button> 

<pre id="editor2" style="width: 600px; height: 500px; display: inline-block;"></pre> 
<p id="id">hey</p> 

<script> 
var editor1 = ace.edit("editor1"); 
editor1.setTheme("ace/theme/twilight"); 
editor1.getSession().setMode("ace/mode/javascript"); 

var editor2 = ace.edit("editor2"); 
editor2.setTheme("ace/theme/twilight"); 
editor2.getSession().setMode("ace/mode/javascript"); 
</script> 

<script> 
function fork(){ 
    var text = document.getElementById("editor2").value; 
    document.getElementById("editor1").innerHTML = text; 
} 
</script> 

{% endblock %} 

了RightNow當我點擊按鈕,在「editor1」預內容由文字「未定義」會被替換,並且變得不活躍,即我不能夠在它來寫。

回答

0
function fork() { 
    var text = editor2.getSession().getValue(); 
    editor1.getSession().setValue(text); 
} 
+0

感謝它的工作,並解決了我的兩個問題。但爲什麼「document.getElementById('editor1')。innerHTML = document.getElementById('editor2')。innerHTML;」從@ hon2a的回答使得editor1不可編輯。 – anonghost 2014-11-23 10:43:51

+0

由於Ace編輯器不直接使用編輯器對象進行存儲,因此它使用虛擬渲染器。見http://ace.c9.io/#nav=api&api=editor – 2014-11-23 10:46:47

0

的通用Element,像你<pre>,沒有任何.value(這就是爲什麼你要undefined)。您可以使用innerHTML獲取其內容。

document.getElementById('editor').innerHTML = document.getElementById('editor2').innerHTML; 
+0

現在感謝它沒有給出未定義。但是editor1變得不可編輯,即在點擊按鈕後我不能編輯它。 – anonghost 2014-11-23 10:39:05

+0

我給你的只是「如何將元素的內容複製到另一個元素」的答案。至於「如何使用元素中的代碼並使用某個庫進行編輯」,則必須查閱庫的API。我從未見過/使用過「燒瓶」。 – hon2a 2014-11-23 10:43:27

+0

我想這與燒瓶無關。 @Richard Denton解決方案工作得很好。 PS:你的解決方案對於我的問題的標題是完美的,但我甚至無法贊成它需要15個聲望:/ – anonghost 2014-11-23 10:48:09

相關問題