如何将动态Javascript转换为文本?
我在下面的jsToBeConverted函数体中有一些代码,我希望能够将其转换为文本,以便用户可以复制它,然后将其粘贴到他们站点上的元素中,以便执行它如何将动态Javascript转换为文本?,javascript,eval,Javascript,Eval,我在下面的jsToBeConverted函数体中有一些代码,我希望能够将其转换为文本,以便用户可以复制它,然后将其粘贴到他们站点上的元素中,以便执行它 someElement.onclick = function () { var textForUserToCopy = (function () { x = document.getElementById('someInput').value; var jsToBeConverted = function
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
是否有生成/转换动态代码为文本的标准函数/过程
谢谢您只需连接即可 e、 g: 有关外观更优雅的解决方案,请参见字符串格式:
为什么要这样做?这似乎是一个教科书上的例子。我正在构建一个应用程序,它接受一些用户输入,并根据这些输入生成一些代码,供用户粘贴到a中。x将始终是一个数字,还是可以是另一种类型?如果是的话,它可能是什么类型?在这种情况下,它只能是一个数字-但这只是一个例子。要转换的实际代码可能是其长度的10倍,并且动态值的数量可以与它们的类型一样大。。。看到答案了吗谢谢,我来看看sprintf——这是所有浏览器都支持的标准Js吗?我不这么认为。您可能需要自己编写函数,或者使用已经实现的解决方案。我特别喜欢这个:
"function (x) { return " + generated_value + " + x }";