Sep 01

在WordPress使用过程中,有很多情况下,插件的javascript不止一个函数或者功能需要使用window.onload加载自己,我自己这个Blog就有数个,例如SearchNow,FacyToolTip,Google Code Prettify等,还有两个写在我js扩展文件里面的,一个用于转换target="_blank"到rel="external"的函数externallinks,以及去除所有点击虚线框的函数RemoveDotLine。

其实以前经常出问题,主要表现在突然我自己那两个函数不工作了,于是我找过很多关于加载多个windows.onload的文章,如以下列出的方法:


function womOn(){
window.onload = womGo;
}

function womGo(){
for(var i = 0;i < woms.length;i++)
eval(woms[i]);
}
function womAdd(func){
woms[woms.length] = func;
}
var woms = new Array();
/*Now Add Multi Functions:*/
womAdd('hideDiv("rightBox")');
womAdd('ajaxInit()');
womAdd('setHandler("tr","mo","onmouseover","rowHightlight")');
womOn();

以及:


function addOnloadEvent(fnc){
if ( typeof window.addEventListener != "undefined" )
window.addEventListener( "load", fnc, false );
else if ( typeof window.attachEvent != "undefined" ) {
window.attachEvent( "onload", fnc );
} else {
if ( window.onload != null ) {
var oldOnload = window.onload;
window.onload = function ( e ) {
oldOnload( e );
window[fnc]();
};
} else
window.onload = fnc;
}
}
/*Now Add Multi Functions:*/
addOnloadEvent(myFunctionName);
// Or to pass arguments
addOnloadEvent(function(){ myFunctionName('myArgument') });

最后:


function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();}
}
}
//Sample usage:
addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
/* more code to run on page load */
});

有时候用其中一个问题就突然解决了,但实际上我不太明白如何解决的。

直到昨天使用Google Code Prettify这个代码高亮插件,又出了问题,我决心搞个明白。

开始我无论用上面哪种方法加载我的那两个函数,均不能成功,于是打开Google Code Prettify的文件,看它如何加载的,它用的是:


window.onload = function(){prettyPrint();};

于是我把那两个函数放进去:


window.onload = function(){
prettyPrint();
externallinks();
removedotline();
};

刷新页面,可以了。但是我不能靠一个插件来加载我自己的功能吧?

仔细想想,为什么FacyToolTip和SearchNow没有影响我的两个加载呢?

打开这两个插件的源文件一看,原来它们都没有用window.onload直接加载自己的函数,而是用了上面我列出的某种方式加载的。

最后解决方案:把我的两个函数放回我的那个扩展js中,用上面的方法加载,然后修改Google Code Prettify,也采用上面列出的的方法加载,刷新页面,可以了。

结论:在WordPress中,任意一个插件直接使用window.onload加载自己的函数,都会造成一定问题。

在那些罗列的加载方式中,它们考虑的都是普通用首页加载所有函数,而没有考虑到WordPress插件的分离性,所以没有提到这个问题。


Sep 01

我靠,又中招了.......N小时后,终于找到了XO藏身的地方,然而......这个注册表键值还不让我删!权限不够?!

PowerPrompt 上场解决问题,它以 SYSTEM 身份运行任意程序!

问题一: 你的系统被病毒感染,当你试图用任务管理器中止它的进程时,得到一个提示“拒绝访问”;

解决方案: 从命令行或者快捷方式启动PowerPrompt,在PowerPrompt的命令行环境下输入 TaskMgr.exe ,这时候你就以SYSTEM身份运行的任务管理器,去XXOO那些不干净的东西吧;

问题二: 你有个服务占用了极大的CPU使用率,你试图重启这个服务但是你仍然被提示“权限不够”;

解决方案:在PowerPromrt环境下运行 Service.msc ,以SYSTEM身份启动服务管理器,此时你可以操作任何服务,停止,重启它们。

举一反三,本文开头那种情况,只要在PowerPromrt环境下启动 Regedit.exe 即可删除那种顽固键值(小心小心,别删错哦,备份,备份)

PowerPromrt可以在Windows 2000以及Windows XP下运行,你需要有Administrator权限。

SYSTEM拥有比Administrators更高的权限,这个组不允许任何用户的加入,在察看用户组的时候,它也不会被显示出来,它就是SYSTEM组。系统和系统级的服务正常运行所需要的权限都是靠它赋予的。该组只有这一个用户SYSTEM。


Aug 31

flickrRSS我就详细不介绍啦,就是从flickr抓自己的图显示在Blog里面的一个Wordpress Plugin。不过现在使用flickrRSS的会发现图片都是大大小小的红X。。

目前能通过yahoo静态服务器访问,所以我们添加一个函数在里面,暂时可以让您的flickrRSS恢复青春:


//En,Let's Fuck G-r-e-a-t-e.F-i-r-e.W-a-l-l!
function jay_access_flickr($text) { //from Jay Access Flickr (http://www.jaylee.cn/wordpress-plugins/)
  $exchangeSource = array(
"/<img(.+?)src="http://static.flickr.com/(.*?)"(.*?)>/i",
"/<img(.+?)src="http://farm1.static.flickr.com/(.*?)"(.*?)>/i",	"/<img(.+?)src="http://farm2.static.flickr.com/(.*?)"(.*?)>/i",	"/<img(.+?)src="http://farm3.static.flickr.com/(.*?)"(.*?)>/i",
"/<img(.+?)src="http://68.142.213.135/(.*?)"(.*?)>/i",
"/<img(.+?)src="http://69.147.123.56/(.*?)"(.*?)>/i"
  );
  $exchangeDest = array(
"<img$1src="http://farm1.static.flickr.yahoo8.akadns.net/$2"$3>",
"<img$1src="http://farm1.static.flickr.yahoo8.akadns.net/$2"$3>",
"<img$1src="http://farm2.static.flickr.yahoo3.akadns.net/$2"$3>",
"<img$1src="http://farm3.static.flickr.yahoo3.akadns.net/$2"$3>",
"<img$1src="http://farm1.static.flickr.yahoo8.akadns.net/$2"$3>",
"<img$1src="http://farm2.static.flickr.yahoo3.akadns.net/$2"$3>"
  );
$text = preg_replace($exchangeSource,$exchangeDest,$text);
return $text;
}

主要参照了“Jay Access Flickr”的方法。

附注:修改的版本,基于 FlickrRSS 3.2,其它类似的插件都可以通过这个函数来替换特定位置来解决flick被墙的问题。


Aug 29

The player will show in this paragraph

这是我从2007台客摇滚夜剪辑下来的版本。

不以时势论人,他仍然毫无疑问的是华语饶舌天王。

小姚,坚持!


Aug 29

This is a basic wordpress plugin that makes it easier for visitors to link to your posts.

It adds a small button that when clicked.

Grabs a small snipped of your post, including the title, and a bit of the first paragraph.

Download it here

To install, just:

1) unzip
2)...
Wordpress Link Building Plugin: Blog This Post - http://www.seologs.com

嗯,上面的引用就是从原作者主页利用这个插件直接复制粘贴过来的,的确非常方便。

插件在你的文章最后增加了一个按钮,按这个按钮就会出现一个文本框,其中有当前文章的少许内容加上主页地址和文章名称,点击文本框自动全选其中内容,然后复制粘贴到你(需要引用)的文章中就行了。

原插件文件名,名称与 CoolCode.CNBlogIt重复了,而且截取中文会出现乱码,我就相应的改了一下。

如果你现在在单独的页面浏览这篇文章,左下角那个“QuoteThis”的动画按钮就是这个插件的效果,你可以试试。


[55/59]  «< 50 51 52 53 54 55 56 57 58 59 >