1
我發送一個GET請求使用jQuery執行從jQuery的腳本GET請求
$.get("/index.html", /*Adding '?update' to the request*/ "update",
function (data) {/* Enter code here */}, "html");
,其中數據是我的服務器的響應。我發回一個簡單的腳本,如alert(),所以'data'變量等於<script> alert("Hello world!") </script>
。
我需要一種方法來自動執行腳本。我可以.append(數據)到一個元素,但我有多個附加,所以這是不實際的。
什麼是執行腳本的最簡單和最實用的方法?
最簡單的,但*不實用*在你的迴應擺脫''
我在這種情況下做了一些瘋狂的事情,但你可能認爲它是極端的。在我的情況下,我不得不在localStorage中存儲一些函數,並按歷史狀態執行它們(當用戶前後移動時)。我創建了一個json對象,類似於
然後存儲這個數據base64編碼。然後當我需要回來,我只是解碼的內容和
的伎倆不會暴露太多的數據,而不是使用eval。 Eval來自邪惡,所以我會遠離。 =)
UPDATE
所以在我的情況下,所有主要的核心職能是在窗口的命名空間類似(而不是實際的內容,但一個樣品)
所以,當我存儲的每個項目的JSON對象它,我用類似的東西來
然後編碼版本將
然後,當我需要再打
會回到我原來的數據對象。由於我的情況下的主要功能是在窗口命名空間。
來源
2017-08-11 14:55:48
看起來像一個非常整齊的那裏,我會試試看。 – jidexl21
但是請記住,如果您的參數包含任何類型的函數(如回調函數和其他函數),那麼它們將在JSON.stringify上消失以創建base64內容。以避免我使用'JSON.stringify(obj,function(data){})'並通過toString()方法將參數中的函數轉換爲字符串,並且在JSON.parse上做了同樣的處理。 –
基於你的解決方案的一個簡單的方法是發送一個json響應和.apply來運行該函數,而且暴露點太多了。我認爲這將是OP需要的完美解決方案。但是不要介意解釋這個位窗口。[data.fn]。[data.obj] .apply(null,data.args) – jidexl21