2010-04-13 53 views

回答

0

你究竟想要達到什麼目的?這聽起來像它可能導致目前的壞地方。 (通過不好的地方我的意思是XSS類型漏洞利用)

+0

基本上我返回一些html,需要使用jquery(即鼠標懸停或點擊事件)初始化一些事件。 – devlife 2010-04-13 03:05:55

+0

我的問題是 - 爲什麼它必須通過返回的數據進行初始化?你可以設置一個jQuery的偵聽器,這樣當被點擊的東西實際上被點擊時,數據(不是JavaScript,你會返回原始數據)被取出,並且說javascript位是用*那個數據初始化的,如果這是有道理的。 – dhoss 2010-04-13 03:12:33

+1

這就是我所說的。我需要在返回的元素上設置一個監聽器。問題是,我寧願不必回到我所有的ajax調用並設置初始化。我寧願讓結果自成一體。 – devlife 2010-04-13 03:19:49

1

如果腳本中有一個函數,你可以調用函數(我認爲)。我認爲瀏覽器可能會阻止這種活動來防止跨站點腳本攻擊。

+0

讓我舉個例子(爲什麼我不想這樣做)。 我有一堆部分視圖(使用MVC),每個部分視圖使用另一個局部視圖。子部分視圖將在一堆不同的地方呈現,我不希望每次通過ajax加載部分視圖時都不必爲此javascript函數添加一堆調用。如果有任何方式可以在子部分視圖內部的腳本標籤沒有明確的調用而被執行,那將是非常理想的。 – devlife 2010-04-13 03:12:09

+0

我不知道我從你的例子中明白爲什麼腳本在被ajax加載的局部視圖中執行不同於在加載ajax之後調用JS函數。我有一個MVC項目,我做了一些局部視圖刷新,我有主視圖加載所有的js,並且函數只是在ajax調用之後調用。你已經明確地調用了ajax的函數,對嗎? – 2010-04-13 15:25:18

0

在您的ajax調用的成功回調中使用以下代碼。

$(result).filter("script").each(function() { 
    eval(this.text); 
}); 

這將執行結果中的所有腳本代碼塊。

相關問題