看板 Ajax 關於我們 聯絡資訊
我在 greasemonkey 裡面,處理 eval 事件 GM_xmlhttpRequest 直接運行是可以使用的 但是在把事件綁在 eval 是不能執行的 所以我把 click 拉出來 直接運行 eval 執行 event clcik 事件 還是不行 提供一下原始碼 這段是 function function GMAjax(t,u,d,fn){GM_xmlhttpRequest({method: t,url: u,headers: {"Content-Type": "application/x-www-form-urlencoded"},data:d,onload: function(xhr) { fn(xhr.responseText); }});} function serializeData(obj){var str='';$.each(obj,function(i,o){str += (str)?'&':'';str += i +'=' + o;})return str;} 這邊是綁事件在 greasemonkey裡面 $("#btnClick").live("click",function(){ GMAjax('GET','http://www.google.com.tw','', function(r){ $('body').html('<textarea rows="40" cols="100">'+r+'</textarea>'); }) }); $(document).ready(function(){ $('body').html('<input type="button" id="btnClick" value="Click" />') eval('var evt = document.createEvent("MouseEvents");'+ 'evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);'+ 'document.getElementById("btnClick").dispatchEvent(evt);'); }) eval 沒動作 當然用 $('btnClick').click() 也沒用 這程式是 GM_xmlhttpRequest ,其實我主要目的是要 SETVALUE 跟 GETVALUE ... 想用程式去 存,但是一直無法執行 ,有辦法解決嗎 一定要在 EVAL 內執行 因為 這 SOURCE 是 POST 到伺服器才給 SOURCE 去 EVAL 的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.70.172
wxyy:我老實說 我沒看懂你在說什麼...那問題有沒有可能發生在 06/04 15:32
wxyy:某些地方 你要寫 unsafeWindow.xxxxxxxx 06/04 15:32
evernever:eval 裡的 document 要改成 unsafeWindow.document 06/04 17:03
mesak:感謝 evernever ,可以正常跑了,eval 無法使用 gm的函式 06/05 13:49
mesak:所以我要用模擬點擊的方式 去跑 gm的函式 06/05 13:50
mesak:wxyy 我試了 unsafeWindow 可運作,但是還是不能跑 jquery 06/05 13:51
ybite:為什麼你要用eval()? 有點搞不懂你真正想做的事情 06/06 20:52
ybite:可以說明清楚一點嘛?qq 06/06 20:53
TonyQ:$("xxx",unsafeWindow.document) 06/07 09:55
mesak:tonyq 的方法好像不行,還是我把 click的 event搞錯了? 06/07 22:34
mesak:JQUERY 的方式不是 $("#ID").click() 這樣可以觸發 CLICK事 06/07 22:35
mesak:件嗎 06/07 22:35
mesak:TO ybite 用EVAL 是為了 確保版本更新,避免重複安裝 06/07 22:35
TonyQ:你先不要管 eval與否,直接把你的code 拿來跑跑看,我懷疑你 06/08 08:47
TonyQ:的 code 可能在根本的地方就有問題,還不用考慮到eval.. 06/08 08:47
mesak:)return str; 這邊有點問題,改為);return str; 06/08 13:40
mesak:直接應用 ENENT的方式可以執行,但是應用JQUERY的 CLICK就 06/08 13:41
mesak:不行... JQUERY 的點擊事件不是 直接打 .click() 嗎? 06/08 13:42