Имам някакъв код (каквото и да е в тялото на функцията jsToBeConverted по-долу), който искам да мога да го конвертирам в текст, така че потребителят да може да го копира и след това да го постави в елемент <script>
на техния сайт, за да бъде изпълнен.
someElement.onclick = function ()
{
var textForUserToCopy = (function ()
{
x = document.getElementById('someInput').value;
var jsToBeConverted = function ()
{
var y = x + 6;
var z = function (a)
{
return (a + 5);
};
window.d = z(y);
};
var jsToExecute = "(" + jsToBeConverted + ")();"
return jsToExecute;
})();
};
Това обаче ще генерира следния текст:
"(function ()
{
var y = x + 6;
var z = function (a)
{
return (a + 5);
};
window.d = z(y);
})();"
Но това не е това, което искам. Ако горното се оцени, x очевидно ще бъде недефиниран. Това, което искам, е x да бъде заменен от стойността си в момента и след това js да се преобразува в текст. Така че, ако стойността на x е била 123, ето как трябва да изглежда генерираният текст:
"(function ()
{
var y = 6 + 6;
var z = function (a)
{
return (a + 5);
};
window.d = z(y);
})();"
Ако горният низ бъде оценен - window.d ще бъде 17
Има ли някаква стандартна функция/процес за генериране/конвертиране на динамичен код в текст?
Благодаря ти
<script>
. - person The Random Guy   schedule 09.02.2014x
ще бъде число или може да бъде от различен тип? Ако е така, какви видове може да бъде? - person tckmn   schedule 09.02.2014x
в средата и да го замените по подходящ начин. Разгледайте esprima.org и github.com/benjamn/recast. - person Felix Kling   schedule 10.02.2014