Re: [問題] 為何FF無法藉由new Function()傳遞事件?
※ 引述《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
01/20 18:06, 1F

討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 5 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章