2015-12-29 4 views
0

Я хочу создать выполнение команды JavaScript .. Я имею в виду, если я создам страницу с помощью метода ввода, то значение этого метода ввода выполняется в консоли JavaScript, результат этого исполнения должен быть вставлен в HTML-тег как: HTML:Вставка команды Javascript HTML

<input id="commandInsertion"/> 
<input type="Submit" onclick="doCommand()"> 
<p id="result"></p> 

JavaScript:

var doCommand = function(x) { 
    // The command should be something like this 
    Execute(x); // Imaginary Function 
    document.getElementById('result').innerHTML = ResultOf(x); 
    // ResultOf() is also an imaginary function 
}; 

doCommand это функция, которая выполняет команду, а затем выводит его в документ

+0

Выполнение команды означает, что вы просто хотите отобразить эту команду в консоли браузера? – Gjohn

+0

Непонятно, что вы подразумеваете под * javascript console *, моя интерпретация: вам нужна функция, которая делает ** x **, а другая функция, которая принимает результат ** x **, записывает ее в документ, заключается в том, что верный? – AGE

+0

FWIW Вы не можете установить значение 'innerHTML' на элементы' input'. См. [Что такое innerHTML для элементов ввода?] (Http://stackoverflow.com/questions/20604299/what-is-innerhtml-on-input-elements). Попробуйте установить свойство 'value' или использовать другой заполнитель HTML, который может содержат 'innerHTML', например' div'. – gfullam

ответ

0

То, что я получил от вашего объяснения, что вам нужно некоторые вещи, такие в том числе:

function getInsertedValue() { 
 
    var txt = document.getElementById('commandInsertion').value; 
 
    updateElem(txt); 
 
} 
 

 
function updateElem(insertedTxt) { 
 
    document.getElementById("updatedTxt").innerHTML = eval(insertedTxt); 
 
}
<div> 
 
    <input type="text" id="commandInsertion" /> 
 
    <span id="updatedTxt"></span> 
 
    <input type="Submit" onclick="getInsertedValue()"> 
 
</div>

+0

Ваш код, похоже, точно не делает то, что я хочу, но спасибо, мне пришлось изменить insertTxt в функции из '..ML = insertTxt..' на' ..ML = eval (insertTxt) .. ' –

-1

Не правда ли? eval Функция?

Функция eval() оценивает или выполняет аргумент.

Используйте его очень осторожно - при этом пользователь может запускать любую команду javascript и это большой риск для безопасности.

2

Простой. Слышал (а) eval? Это забавная и опасная функция. Он позволяет оценивать код во время выполнения. Вот пример:

$('#calc').on('input', function() { 
 
    try { 
 
    $('#out').val(eval($('#calc').val())); 
 
    } catch (e) { 
 
    $('#out').val('ERROR!') 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
Input: 
 
<br> 
 
<input id='calc'> 
 
<br>Output: 
 
<br> 
 
<input id='out'>

Это просто, но Eval также может быть опасным. Он может позволить злоумышленникам делать все, что вы можете. Вы можете прочитать об этом:

Restricting eval() to a narrow scope

Так вот код, который вы хотите:

var doCommand = function() { 
 
    // The command should be something like this 
 
    document.getElementById('output').innerHTML = eval(document.getElementById('commandInsertion').value); 
 
};
<input id="commandInsertion" /> 
 
<div id="output"></div> 
 
<br> 
 
<br> 
 
<input type="Submit" onclick="doCommand()">

+0

Ни один из ваших примеров не работает. Возможно, 'eval()' подавляется в редакторе SO.? – gfullam

+0

@gfullam [не для меня] (http://i.stack.imgur.com/osQor.png) –

+0

Я хочу вставить значение внутри метода ввода, когда я нажимаю кнопку «Отправить», он выполняется. И когда я открываю консоль (F12) Выполняется функция, Начиная с: Вход должен иметь 'var Xeiad =" Hello World! ";' Затем, когда я открываю консоль (F12) и набираю ' console.log (Xeiad); ' Он должен возвращать' Hello World! ' ' eval() 'работает при непосредственном выполнении через консоль, но не через получение значения метода ввода. Ваш ответ кажется сработавшим, но это не тот ответ, который я искал, чтобы найти. В любом случае, спасибо за вашу помощь. Я попытаюсь использовать ваш способ сбора данных из метода ввода. –

Смежные вопросы