草庐IT

PREG_REPLACE_EVAL

全部标签

不使用 eval/new 函数的 JavaScript 模板库

使用manifest_version:2的GoogleChrome扩展被限制使用eval或newFunction。我检查过的所有JavaScript模板库(mustachejs、underscorejs、jQuery模板、hoganjs等)都使用newFunction。是否有任何不使用两者的相当成熟和受支持的?Infoaboutthesecurityrestrictions. 最佳答案 事实证明,mustachejs最近添加了newFunction并且使用了tag0.4.2没有它。它的API与Mustache.to_html而不是M

javascript - 保护 JavaScript eval 函数

我们想让我们的用户能够在我们的应用程序中执行自己创建的JavaScript代码。为此,我们需要使用eval来评估代码。为了将所有安全问题降至最低(如果不是零),我们的想法是防止在代码中使用任何window或document函数。所以没有XMLHttpRequest或类似的东西。这是代码:functionsecure_eval(s){varret;(function(){varcopyXMLHttpRequest=XMLHttpRequest;//saveorginalfunctionincopyXMLHttpRequest=undefined;//makeorignalfunction

javascript - window.location.replace(href) 后返回按钮失效;

我做了一个简单的函数,使所有容器的行为都像链接(“a”元素)。functionallHot(element){$(element).click(function(){varhref=$(this).find('a').attr('href');window.location.replace(href);}).hover(function(){$(this).css({'text-shadow':'0px1px0px#D6D6D6'});},function(){$(this).css({'text-shadow':'none'});});}功能很好。用户无需单击“更多”按钮,而是可以单

javascript eval() 因 window.external.notify() 而失败,适用于 window.alert()

在WP8上,如果我执行(1):Microsoft.Phone.WebBrowserwb;wb.InvokeScript("eval","window.external.notify('abc');");它抛出“调用目标返回错误”,未知错误,hresult80020101。但是(2)wb.InvokeScript("eval","window.alert('abc');");工作正常,并显示消息框。和(3)wb.InvokeScript("eval","(function(){window.external.notify('abc');})();");也可以正常工作。我的问题是,阻止ev

javascript - 在特定索引处使用 .replace()

是否有一个函数可以在特定索引处将字符串中的字符串替换一次?示例:varstring1="mytextismytext";varstring2="my";string1.replaceAt(string2,"your",10);结果输出将是“我的文字就是你的文字”,或者:varstring1="mytextismytext";varstring2="my";string1.replaceAt(string2,"your",0);在这种情况下,结果将是“您的文本就是我的文本”。 最佳答案 functionReplaceAt(input,

JavaScript - 对条件使用 eval() - 是否正确?

我有JSON数据,我正在使用filter搜索:myJsonData.filter(function(entry){return(entry.type==='model'||entry.type==='photographer');});现在我没有在返回后指定这些条件,而是创建了一个类似的字符串(因为我想要一个预先创建的搜索条件列表),然后使用eval()所以:myJsonData.filter(function(){returneval(stringToSearch);});这似乎有效。但是,我只想确认一下,这是正确的用法吗?这样做有什么风险/问题吗?我想灵活地进行任何类型的搜索,例如

javascript - 与使用 eval 相比,包含 <script> 标签是否有性能提升?

我看到很多关于如何像这样动态添加代码的建议(source):varmyScript=document.createElement("script");myScript.setAttribute("type","text/javascript");myScript.innerHTML+='alert("Hello");';document.body.appendChild(myScript);相对于eval像这样eval('alert("Hello");');人们提示eval的性能下降和安全问题,但我无法想象如何添加标签会更快或更安全。编辑人们想知道为什么我要评估像alert("Hell

javascript - IE9 javascript eval() 的问题

有什么理由吗eval("(function(x){returnx*x;})")不使用IE9返回函数? 最佳答案 这是JScript解析器中的一个错误。它不应该在IE9中发生,除非您处于兼容或怪癖模式。IE8将您的函数表达式误解为函数声明,导致它无法返回任何内容。之前在thisquestion中提到过.您可以使用其他典型方法之一解决它,以消除JScript解析器对什么构成表达式与语句的混淆,例如:eval('[function(x){returnx*x;}][0]')eval('0?0:function(x){returnx*x;}'

javascript - jQuery 验证与 Summernote 编辑器错误 : Cannot read property 'replace' of undefined

我正在使用MVC5通过summernote编辑器构建一个表单。Razor代码:@Html.LabelFor(model=>model.Content,htmlAttributes:new{@class="control-label"})@Html.EditorFor(model=>model.Content,new{htmlAttributes=new{@class="form-controlpost-content"}})@Html.ValidationMessageFor(model=>model.Content,"",new{@class="text-danger"})JS:$(

javascript - 为什么人们说 javascript eval() 是邪恶的,但您却没有反对 setTimeout 和 setInterval 等?

如果我没记错的话,eval会执行给定字符串中的有效代码eval("alert('hey')");和setTimeout("alert('hey')",1000);做同样的事情,只是用了一个计时器。settimeout和eval一样有风险吗? 最佳答案 我想说你听到了同样的反对意见。setTimeout(带有字符串而不是函数参数)与eval几乎相同。如果可能的话,setTimeout(function(){alert("hey");},1000); 关于javascript-为什么人们说j