Re: [問題] 為何FF無法藉由new Function()傳遞事件?

看板Ajax作者 (function(){})()時間12年前 (2013/01/20 16:31), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串5/5 (看更多)
※ 引述《StarTouching (撫星)》之銘言: : 雖然如此 我想 new Function 還是有它派上用場的時候。 : 拿我這次寫的東西舉例: : : function foo(obj, css1, value1, css2, value2) : { : var f = new Function("obj", "v", "obj.style." + css1 + "= v"); : f(obj, value1); : f = new Function("obj", "v", "obj.style." + css2 + "= v"); : f(obj, value2) : } 你可以寫成這樣: function foo(obj, css1, value1, css2, value2) { var f f = function(obj, v) { obj.style[css1] = v } f(obj, value1) f= function(obj, v) { obj.style[css2] = v } f(obj, value2) } : 我個人猜想 jQuery可能也是用類似方法實作的。 你是指 selector 嗎?像是 $("#id > .class [name]")?jQuery 是丟給 Sizzle 處理。 jQuery https://github.com/jquery/jquery/blob/master/src/core.js#L36 jQuery.fn.init https://github.com/jquery/jquery/blob/master/src/core.js#L75 rootjQuery https://github.com/jquery/jquery/blob/master/src/core.js#L808 jQuery().find https://github.com/jquery/jquery/blob/master/src/sizzle-jquery.js#L3 Sizzle https://github.com/jquery/sizzle/blob/master/sizzle.js#L205 Function 跟 eval 適合用在 evaluate script 的時候,例如 ajax 拿到 JavaScript, 或 user 輸入的 JavaScript。前者例如 jQuery.getScript 後者例如 browser 的 console。 Function 跟 eval 有些微差別,不過我現在要去大便,之後再說或者等別人說。 : 至於injection漏洞問題 這我確實就不太明白了。 : 請問可以舉個例子嗎? : 這樣以後也好避免。 http://stackoverflow.com/search?q=javascript+eval+injection -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.46.219

01/20 18:06, , 1F
文章代碼(AID): #1G-wjut1 (Ajax)
文章代碼(AID): #1G-wjut1 (Ajax)