Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将动态Javascript转换为文本?_Javascript_Eval - Fatal编程技术网

如何将动态Javascript转换为文本?

如何将动态Javascript转换为文本?,javascript,eval,Javascript,Eval,我在下面的jsToBeConverted函数体中有一些代码,我希望能够将其转换为文本,以便用户可以复制它,然后将其粘贴到他们站点上的元素中,以便执行它 someElement.onclick = function () { var textForUserToCopy = (function () { x = document.getElementById('someInput').value; var jsToBeConverted = function

我在下面的jsToBeConverted函数体中有一些代码,我希望能够将其转换为文本,以便用户可以复制它,然后将其粘贴到他们站点上的元素中,以便执行它

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 }";