Tag: eval

javascript jquery和使用eval

我目前正在使用jquery插件来读取数据文件(data.html) data.html具有以下格式 [10,20,30,40,50] 我的jquery数据请求和返回值的javascript如下 function test(){ var result=$.ajax({ url:’data.html’, type:’get’, dataType:’text’, async:false, cache:false }).responseText return result;}; var my=test(); alert(my[0]) 我想以数组格式获取这些值,即我希望我的[0]值为10,但我得到“[”。 如果我使用evalfunction my=eval(test()); 我可以得到10,但有没有其他更好的方法将返回的ajax调用存储到数组而不是字符串? 谢谢 我尝试了下面的答案,我有点困惑,myArray中的跟随代码结果为null(在firebug中),但我把async:false然后它的工作原理。 为什么我需要async:false来将值存储到数组中? (http://stackoverflow.com/questions/133310/how-can-i-get-jquery-to-perform-a-synchronous-rather-than-asynchronous-ajax-req) jQuery.extend({getValues: function(url) { var result = null; $.ajax({ url: url, type: ‘get’, dataType: ‘json’, cache: false, success: function(data) {result = data;} }); return result;}}); myArray=$.getValues(“data.html”); alert(myArray[1]);

动态引用Javascript数组名称而不使用Eval?

鉴于EVAL是Evil,我如何动态创建一个数组名称: 我有一堆数组,我需要根据用户点击的内容引用不同的数组。 这段代码给了我数组对象: (eval(calendarObject.id + ‘7’)) 但是eval很糟糕,那么如何构造一个Array名称然后引用呢? 这里有更多的背景: if (jQuery.inArray(String(checkinDate.getTime()/1000), (eval(calendarObject.id + ‘7’))) == -1 ) { //do stuff }; 有任何想法吗? 谢谢。

IE8 Json问题

我面临一个非常奇怪的问题,我从django驱动的站点获取JSON对象并使用eval()将其排除。 除了所有版本的IE之外,它适用于所有其他浏览器。 在IE中,我得到“variable_name”是null或不是对象。 我已尽力而为,但到目前为止还没有运气。 这是我的json对象 var results = {“result”:[ { “artist”:”somevalue”, “song”:”someothervalue”, “file”:”filepathvalue”, “views”:”0″, “songid”:”1007″, “artistimage”:”default.jpg” }, { “artist”:”artistname”, “song”:”songname”, “file”:”anotherfilepath value”, “views”:”0″, “songid”:”1008″, “artistimage”:”default.jpg” }, ], “prev_page”: “0”, “next_page”: “2” }; 注意: alert(results.result[0].song) 工作得很好,但是 $(‘#somediv’).html(”+results.result[0].song+”); 在IE中不起作用。 任何的想法?

在Eval中设置变量(JavaScript)

我正在写一个GreaseMonkey脚本(使用JQuery),我需要一些由原始页面中的脚本设置的变量,如下所示: var rData = {“20982211″:[1,0,1],”20981187”:[8,0,4]}; 我从另一个页面获取此元素并尝试评估它,奇怪的是这不起作用: $.get(link_url, null, function(data) { alert(“1:” + rData); eval($(data).find(“script”).text()); alert(“2:” + rData); } 奇怪的是它在firebug控制台上工作(我只是直接在没有.get的目标页面上尝试了eval),当我运行脚本时虽然没有。 它在两个警报中都给我“null”。 有任何想法吗?

eval()和附加脚本标记之间的Javascript差异

我想知道是否有人可以解释使用Javascript的eval()和另一种方法之间的区别,比如使用JQuery创建脚本标记然后将该元素附加到页面: eval(somecode); 与 $(“”+somecode+””).appendTo(“head”); 不确定这是否相关,但这里是上下文:我正在使用Drupal Popups模块的一个版本,其基本目的是通过AJAX整个页面请求轻松将常规链接转换为弹出窗口并将其附加到页面中模态窗口。 这通常包括外部CSS和Javascript文件。 为了提高所有这些AJAX加载的性能,我转而使用AJAX排队,并将外部脚本的eval()更改为列出的替代方案。 但是,这会在其他各个页面上引发零星的Javscript错误。

如何为动态创建的变量创建和赋值?

我试图让这个工作: function whatever(arg) { eval(arg) + ‘_group’ = []; } 目的是只有一个函数而不是三个具有基本相同的内容但具有不同的变量名称。 最后我希望有类似的东西: a_group = []; b_group = []; 这样做,我收到错误: ReferenceError: Invalid left-hand side in assignment 编辑 这是我正在努力工作的原始function。 但它不会起作用。 function collect_all_values_for(field_name) { switch(field_name) { case ‘states’: use = ‘state’; case ‘cities’: use = ‘city’; case ‘neighborhoods’: use = ‘neighborhood’; } window[field_name + ‘_group’] = []; n_fields […]

无法以编程方式触发jQuery单击事件

如果我理解正确,要以编程方式触发附加到具有my-button的css类的对象的jQuery click事件,您应该能够执行此操作: $(‘.my-button’).click(); 由于某种原因,此代码无法触发附加到元素的click事件。 代码的$(‘.my-button’)部分正在工作并返回一个元素。 我们知道事件处理程序附加到该元素,因为单击该元素会触发其事件处理程序的代码。 处理程序附加了以下简单代码: $(”) .click(function() { /* code here */ }) .appendTo(parent); 是否存在事件触发不起作用的条件? 正在访问的元素是通过jQuery小部件创建的,小部件代码通过跨域JSONP调用检索并通过eval运行(我怀疑的因素)。

什么是更好的做法:eval或追加脚本?

我需要执行一些我从一些AJAX调用中获得的自定义JavaScript。 我可以对字符串进行eval ,或者我可以将它附加到DOM的script标签中。 哪种方法会更好? var dynamicScript = ‘alert(\’Hello world!\’);’; 方法1 – 脚本 : var x = ” + dynamicScript +”; $(document.body).append(x); 方法2 – 评估 : eval(dynamicScript); 什么方法更好,为什么? 还是有更好的选择?

eval()的替代方法javascript

我主要使用javascript,Jquery,knockout等 吸引eval()给我的是 var a = 5; var b = 10; eval(“a+b”); //Gives me output 15 注意:我工作的情况是a和b的值动态变化 在我的工作中,我正在处理来自json,knockout等的许多动态对象。所以eval解决了我的大部分问题。 但正如我读到的那样,我发现eval()有很多问题,如减速等。 我搜索了很多并且没有找到任何替代eval()的时候我必须将方程式作为对象的方程式获得。 任何人都可以建议一个插件或function替代eval()记住我上面给出的例子 问题: 我正在使用挖空映射从Json数据创建一个表。 因此,生成json格式的表格。 我还使用knockout计算了一些场。 现在我使用硬编码 self.Salary = ko.computed(function(){ return self.salaryEqn() && eval(self.salaryEqn()).toFixed(2); }) self.salaryEqn(salEqnTxt); 我想动态执行这些方程式。 我可以创建它作为字符串动态,但评估它们是我面临的问题。 我想要解决方案 有没有办法在不使用eval的情况下计算存储在JavaScript中的字符串中的公式? 像一个公式 “self.Salary = ko.computed(function(){ return self.salaryEqn() && eval(self.salaryEqn()).toFixed(2); })”

JQuery getJSON – ajax parseerror

我试图用JQuery getJSON和ajax解析以下json响应: [{“iId”:”1″,”heading”:”Management Services”,”body”:”Program OverviewJanuary 29, 2009″}] 我也尝试过像这样转义“/”字符: [{“iId”:”1″,”heading”:”Management Services”,”body”:”Program Overview January 29, 2009″}] 当我使用getJSON时,它不会执行回调。 所以,我用JQuery ajax尝试了如下: $.ajax({ url: jURL, contentType: “application/json; charset=utf-8”, dataType: “json”, beforeSend: function(x) { if(x && x.overrideMimeType) { x.overrideMimeType(“application/j-son;charset=UTF-8”); } }, success: function(data){ wId = data.iId; $(“#txtHeading”).val(data.heading); $(“#txtBody”).val(data.body); $(“#add”).slideUp(“slow”); $(“#edit”).slideDown(“slow”); },//success error: function (XMLHttpRequest, textStatus, errorThrown) { alert(“XMLHttpRequest=”+XMLHttpRequest.responseText+”\ntextStatus=”+textStatus+”\nerrorThrown=”+errorThrown); } }); ajax命中错误并警告以下内容: […]