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