Wednesday, December 24, 2008

第一个greasemonkey成品

事情是这样的,家里人在myHeritage.cn一个以家族为主要元素的SNS网站开了一个帐户。上面还是提供了一些很有意思的服务,可惜这个网站有自己的商业模式,免费的帐号只给250M的空间,两下就被照片占满了,而且付费的空间也不如意。于是打算把照片放到yupoo之类的托管商,然后链过来,批量的照片就用flash的幻灯片来作。但是myHeritage有个问题,编辑文章用的tinyMCE没有激活media插件。刚开始翻出了页面的提交函数,自己手动试了一下,发现后台没有作格式检查。这样确定下来是可行的了,下面自然就想到写一个greasemonkey脚本来作这件事情了。

一开始计划在页面上开一个iframe,然后完全自己控制这个框架的代码,这样就可以使用最新的tinyMCE了,而且可以开启想要的plugin。中间发现,动态生成的iframe似乎dom的事件出了问题,首先要触发一个alert窗口才能动态的加载脚本,而且只能手动的调用tinyMCE的回调函数。但是最大的问题是tinyMCE的插入flash弹出窗口都是用iframe实现的,这样会导致跨域的安全问题。最后只能放弃了。

之后在翻看myHeritage集成的2.1.0版本的tinyMCE时发现,这个版本已经提供了media插件,而且这些插件所需的代码的路径在服务器上也是有效的。呵呵,这样只用把tinyMCE初始化的一些过程再重复一次就可以激活media插件了。最后把实验成功的过程写成了一个脚本,而且理论上也对其他网站有效,只要那些插件的代码没有在服务器上删除。


No comments: