作者mesak (米沙)
看板Ajax
标题[问题] greasemonkey eval 事件
时间Fri Jun 4 13:36:03 2010
我在 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
1F:→ wxyy:我老实说 我没看懂你在说什麽...那问题有没有可能发生在 06/04 15:32
2F:→ wxyy:某些地方 你要写 unsafeWindow.xxxxxxxx 06/04 15:32
3F:推 evernever:eval 里的 document 要改成 unsafeWindow.document 06/04 17:03
4F:→ mesak:感谢 evernever ,可以正常跑了,eval 无法使用 gm的函式 06/05 13:49
5F:→ mesak:所以我要用模拟点击的方式 去跑 gm的函式 06/05 13:50
6F:→ mesak:wxyy 我试了 unsafeWindow 可运作,但是还是不能跑 jquery 06/05 13:51
7F:推 ybite:为什麽你要用eval()? 有点搞不懂你真正想做的事情 06/06 20:52
8F:→ ybite:可以说明清楚一点嘛?qq 06/06 20:53
9F:→ TonyQ:$("xxx",unsafeWindow.document) 06/07 09:55
10F:→ mesak:tonyq 的方法好像不行,还是我把 click的 event搞错了? 06/07 22:34
11F:→ mesak:JQUERY 的方式不是 $("#ID").click() 这样可以触发 CLICK事 06/07 22:35
12F:→ mesak:件吗 06/07 22:35
13F:→ mesak:TO ybite 用EVAL 是为了 确保版本更新,避免重复安装 06/07 22:35
14F:→ TonyQ:你先不要管 eval与否,直接把你的code 拿来跑跑看,我怀疑你 06/08 08:47
15F:→ TonyQ:的 code 可能在根本的地方就有问题,还不用考虑到eval.. 06/08 08:47
16F:→ mesak:)return str; 这边有点问题,改为);return str; 06/08 13:40
17F:→ mesak:直接应用 ENENT的方式可以执行,但是应用JQUERY的 CLICK就 06/08 13:41
18F:→ mesak:不行... JQUERY 的点击事件不是 直接打 .click() 吗? 06/08 13:42