2014-02-09 14 views
0

我有一些代碼(不管是在下面的jsToBeConverted函數體內),我希望能夠將其轉換爲文本,以便用戶可以複製它,然後將其粘貼到其網站上的<script>元素中爲了執行它。如何將動態Javascript轉換爲文本?

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值正好是,這是生成的文本應該是什麼樣子:

"(function() 
{ 
    var y = 6 + 6; 

    var z = function (a) 
    { 
    return (a + 5); 
    }; 

    window.d = z(y); 
})();" 

如果上面的字符串進行評估 - window.d將17

是那裏有一些用於生成/轉換動態代碼爲文本的標準函數/過程?

謝謝

+0

你爲什麼要這麼做?這似乎是[XY問題](http://meta.stackexchange.com/q/66377/180276)的教科書示例。 – Doorknob

+0

我正在構建一個應用程序,它需要一些用戶輸入,並基於該應用程序生成一些代碼以供用戶粘貼在'