Board logo

标题: 本贴仅供JS代码分享 3Q [打印本页]

作者: jfjj007    时间: 2010-2-23 12:02     标题: 本贴仅供JS代码分享 3Q

本帖最后由 jfjj007 于 2010-7-31 19:33 编辑

下载或者教程等相关信息请查阅
http://bbs.ioage.com/cn/thread-143353-1-1.html
测试了下 SM有一个简单的屏幕截图功能
而且可以本地调用  哇滴神   有点小BT哦


----------------------------------------------------------------
这个扩展我花了俩天的时间汉化完成 刚开始有点复杂 后来就条理清晰了
SM有以下特点:
1.快捷键调用Web  URL
2.快捷键调用本地程序
3.JS调用(可以玩云输入、网址缩短、Google翻译等等功能)
4.有一个小巧的网页截图功能


例子1: goo.gl网址缩短
  1. javascript:window.googl_callback%20=%20function(response){if(response.error_message){alert("An%20error%20occured:%20"%20+%20response.error_message);}else{alert(response.short_url);}};%20var%20s%20=%20document.createElement("script");%20s.src%20=%20"http://ggl-shortener.appspot.com/?url="%20+%20window.location.href%20+%20"&jsonp=googl_callback";%20void(document.body.appendChild(s));
复制代码


例子2: 通过 Bookmarklet 调用 Google Translate 实时翻译当前页面
  1. javascript:{d=document;b=d.body;o=d.createElement('scri'+'pt');o.setAttribute('src','http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');o.setAttribute('type','text/javascript');b.appendChild(o);v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none';p=d.createElement('scri'+'pt');p.text='function%20googleTranslateElementInit(){new%20google.translate.TranslateElement({pageLanguage:%22%22},%22google_translate_element%22);}';p.setAttribute('type','text/javascript');b.appendChild(p);}void%200
复制代码


例子3: 搜狗云拼音
jym2005给出的例子 很生动  所以我就举一反三 可以参考9L

例子4:WordPress快速评论


  1. javascript:(function(){ document.getElementById('author').value='名称'; document.getElementById('email').value='邮箱'; document.getElementById('url').value='http://你的网址'; document.getElementById('comment').value='评论内容'; })()
复制代码


例子5:Z-Blog快速评论
  1. javascript:(function(){ document.getElementById('inpName').value='名称'; document.getElementById('inpEmail').value='邮箱'; document.getElementById('inpHomePage').value='http://你的网址'; document.getElementById('txaArticle').value='评论内容'; })()
复制代码



--------------------------------------------------------
非常感谢jym2005大大的援助  问题基本上得到了解决

目前正在调试中.....
这个扩展对于第一次用的人来说的确是个杯具  即时生效性做的不好

点击下载
作者: jym2005    时间: 2010-2-23 12:24

提示: 作者被禁止或删除 内容自动屏蔽
作者: Falzon    时间: 2010-2-23 12:27

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 12:35

本帖最后由 jfjj007 于 2010-2-23 12:42 编辑
你该不会是说 Shortcut Manager吧。。
jym2005 发表于 2010-2-23 12:24 http://bbs.ioage.com/cn/images/common/back.gif


吖 正是这个 被猜中拉用的人好像不多吧   打不了圆场了
我也第一次用  不知道能否本地调用?
作者: jym2005    时间: 2010-2-23 12:41

提示: 作者被禁止或删除 内容自动屏蔽
作者: 冰淇淋小子    时间: 2010-2-23 12:55

呵呵,支持一下
作者: jfjj007    时间: 2010-2-23 12:55

本帖最后由 jfjj007 于 2010-2-23 13:01 编辑
这东西好高级。。。我当时看的时候有点头晕
jym2005 发表于 2010-2-23 12:41 http://bbs.ioage.com/cn/images/common/back.gif


你还别说  真有点高级  我一开始汉化看到这么乱78遭的代码头上就开始冒冰雹似的大汗

PS:
这个扩展有点Bug?  语言栏显示zh_CN  怎么点了没反应  
我还以为是中国人开发的  然后一看主页  半英半日文  太BT了吧
我在想 这个东西如果能本地调用  会不会就是未来的Chrome OS的雏形?
作者: jym2005    时间: 2010-2-23 14:52

提示: 作者被禁止或删除 内容自动屏蔽
作者: jym2005    时间: 2010-2-23 14:55

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:03

似乎还是不行 我F5刷新也不行 图标上也没看到有信息
作者: jym2005    时间: 2010-2-23 15:09

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:17

哦 效果是出来了 但是快捷打开指定的网页又找不到了
作者: jfjj007    时间: 2010-2-23 15:23

哦 我懂了  每次设定完毕 要打开一个非chrome://的新标签才能有效果   
刷新都没用的
作者: jym2005    时间: 2010-2-23 15:24

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:27

jym2005 问你下 你举的例子 搜狗云 怎么有的地方没法输入? 是浏览器问题还是搜狗问题?
作者: Falzon    时间: 2010-2-23 15:30

提示: 作者被禁止或删除 内容自动屏蔽
作者: jym2005    时间: 2010-2-23 15:32

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:34

图挂了?我怎么看不到。。哪里没法输入?
jym2005 发表于 2010-2-23 15:32 http://bbs.ioage.com/cn/images/common/back.gif


图没挂啊  论坛附件上传到     16L可能说的有道理
作者: Falzon    时间: 2010-2-23 15:34

提示: 作者被禁止或删除 内容自动屏蔽
作者: Falzon    时间: 2010-2-23 15:35

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:39

这个是说插件。
把“快捷方式”换成“快捷键”吧
Falzon 发表于 2010-2-23 15:35 http://bbs.ioage.com/cn/images/common/back.gif


呦西~  只是个初步草稿   我才刚刚弄明白怎么使用   这东西的即时生效做的好差
作者: Falzon    时间: 2010-2-23 15:39

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:41

你的某个文件杯具了,用ANSI了吧90704
Falzon 发表于 2010-2-23 15:39 http://bbs.ioage.com/cn/images/common/back.gif



............我都米调试好  今天不做了  呜呜呜 没心情了
作者: Falzon    时间: 2010-2-23 15:42

提示: 作者被禁止或删除 内容自动屏蔽
作者: jfjj007    时间: 2010-2-23 15:45

那么期待明天的进展~
看出这个插件很BT了
Falzon 发表于 2010-2-23 15:42 http://bbs.ioage.com/cn/images/common/back.gif


可能吧 ....我也今天刚玩   一开始摸不着头脑  以为键盘坏了
作者: banhua29653    时间: 2010-2-23 16:02

我以为是新版本呢,刚高兴着呢,闹了半天原来……
作者: jfjj007    时间: 2010-2-24 08:37

呼叫JYM  我要你的支援
作者: april    时间: 2010-2-24 09:15

不明真相的群众路过
作者: jfjj007    时间: 2010-2-24 09:26

不明真相的群众路过
april 发表于 2010-2-24 09:15 http://bbs.ioage.com/cn/images/common/back.gif


哇 BZ亲临本贴  沾光沾光
作者: Falzon    时间: 2010-2-24 09:52

提示: 作者被禁止或删除 内容自动屏蔽
作者: jym2005    时间: 2010-2-24 10:29

提示: 作者被禁止或删除 内容自动屏蔽
作者: 032026    时间: 2010-3-7 13:03

今天刚使用了这个插件,功能非常强大,不负“装C必备”之名,不过使用过程中发现个小问题,虽无伤大雅,不过还是反馈一下。

我的快捷键配置如下图所示 ,左方向键切换到左侧标签,右方向键切换到右侧标签
[attach]91197[/attach]
当由一个标签使用快捷键切换到左侧标签时,切换的同时会使目标标签向前翻页;
同样的,使用快捷键切换到右侧标签时,切换的同时会使目标标签向后翻页。
例如,现有三个标签1,2,3
[attach]91198[/attach]
标签2中主题分三页,当前显示的是第2页,
[attach]91199[/attach]
当由标签1切换到标签2时,标签2显示的内容会自动翻到第三页;
当由标签3切换到标签2时,标签2显示的内容会自动翻到第一页。

这个情况会让用户在浏览论坛是遇到困扰,希望楼主能更新一下,
作者: jfjj007    时间: 2010-3-7 17:39

本帖最后由 jfjj007 于 2010-3-7 17:41 编辑
今天刚使用了这个插件,功能非常强大,不负“装C必备”之名,不过使用过程中发现个小问题,虽无伤大雅,不过还是反馈一下。

我的快捷键配置如下图所示 ,左方向键切换到左侧标签,右方向键切换到右侧标签
91197
...
032026 发表于 2010-3-7 13:03 http://bbs.ioage.com/cn/images/common/back.gif


可能跟默认快捷键有关系
开发者虽然说能覆盖默认的快捷键  可能他疏忽了吧  建议联系http://goo.gl/xNNv

还有默认情况下  不装扩展 左右键就是翻页用的  DZ下测试
作者: 侈吻    时间: 2010-4-3 02:06

本帖最后由 侈吻 于 2010-4-3 05:45 编辑

我分享兼提问
应为我是完全不懂js这种深奥的东东的,所以这个站内搜索是从opera那抠来的,结果居然能用。。。
  1. javascript:var t=window.location.hostname;var s=prompt('Google site search - enter search string:','');if(s){if(s.match(/^d\s.+/)){s=s.substring(2,s.length);t=t.match(/[^\.]+\.\w{2,4}$/)+''};void(location.href='http://www.google.com/search?q=site:'+t+'+'+s+'&sourceid=opera&num=100&hl=zh-CN')}
复制代码

我的问题就是,有没有高手能把多余的代码去掉啊?虽然不去掉其实也莫有影响来的。。
然后是我收集的一些小书签。。。

跳出新视窗显示当前页面的所有图像
  1. javascript:outText='';for(i=0;i<document.images.length;i++){if(outText.indexOf(document.images[i].src)==-1){outText+='<tr><td><img%20src='+document.images[i].src+'%20/></td></tr>'}};if(outText!=''){imgWindow=window.open('','imgWin','width=800,height=600');imgWindow.document.write%20('<table%20border=1%20cellpadding=10>'+outText+'</table>');imgWindow.document.close()}else{alert('No%20images!')}
复制代码


新建一个标签来显示所选内容
  1. javascript:(function(){ var d=open().document; d.title="Selection"; if (window.getSelection) { /*Moz*/ var s = getSelection(); for(i=0; i<s.rangeCount; ++i) { var a, r = s.getRangeAt(i); if (!r.collapsed) { var x = document.createElement("div"); x.appendChild(r.cloneContents()); if (d.importNode) x = d.importNode(x, true); d.body.appendChild(x); } } } else { /*IE*/ d.body.innerHTML = document.selection.createRange().htmlText; } })();
复制代码


在网页中按字母顺序排表
  1. javascript:function toArray (c){var a, k;a=new Array;for (k=0; k<c.length; ++k)a[k]=c[k];return a;}function insAtTop(par,child){if(par.childNodes.length) par.insertBefore(child, par.childNodes[0]);else par.appendChild(child);}function countCols(tab){var nCols, i;nCols=0;for(i=0;i<tab.rows.length;++i)if(tab.rows[i].cells.length>nCols)nCols=tab.rows[i].cells.length;return nCols;}function makeHeaderLink(tableNo, colNo, ord){var link;link=document.createElement('a');link.href='javascript:sortTable('+tableNo+','+colNo+','+ord+');';link.appendChild(document.createTextNode((ord>0)?'a':'d'));return link;}function makeHeader(tableNo,nCols){var header, headerCell, i;header=document.createElement('tr');for(i=0;i<nCols;++i){headerCell=document.createElement('td');headerCell.appendChild(makeHeaderLink(tableNo,i,1));headerCell.appendChild(document.createTextNode('/'));headerCell.appendChild(makeHeaderLink(tableNo,i,-1));header.appendChild(headerCell);}return header;}g_tables=toArray(document.getElementsByTagName('table'));if(!g_tables.length) alert("This page doesn't contain any tables.");(function(){var j, thead;for(j=0;j<g_tables.length;++j){thead=g_tables[j].createTHead();insAtTop(thead, makeHeader(j,countCols(g_tables[j])))}}) ();function compareRows(a,b){if(a.sortKey==b.sortKey)return 0;return (a.sortKey < b.sortKey) ? g_order : -g_order;}function sortTable(tableNo, colNo, ord){var table, rows, nR, bs, i, j, temp;g_order=ord;g_colNo=colNo;table=g_tables[tableNo];rows=new Array();nR=0;bs=table.tBodies;for(i=0; i<bs.length; ++i)for(j=0; j<bs[i].rows.length; ++j){rows[nR]=bs[i].rows[j];temp=rows[nR].cells[g_colNo];if(temp) rows[nR].sortKey=temp.innerHTML;else rows[nR].sortKey="";++nR;}rows.sort(compareRows);for (i=0; i < rows.length; ++i)insAtTop(table.tBodies[0], rows[i]);}
复制代码


消除了大部分非文本元素而显示文字
  1. javascript:(function(){var D=document,e,styles="table,thead,tbody,tr,th,td{display:block!important;}*{width:auto!important;height:auto!important;position:static!important;float:none!important;margin-left:0!important;margin-right:0!important;} img,iframe,embed,object{display:none;} body {margin:4px!important;}"; e=D.createElement('link'); e.rel='stylesheet'; e.href=window.opera ? "javascript:'"+styles+"'" : "data:text/css,"+styles; D.getElementsByTagName("head")[0].appendChild(e)})()
复制代码


让一个网页看起来像在PDA上
  1. javascript:var s=document.createElement('link');s.setAttribute('href','http://www.ressukka.net/misc/pdaize.css');s.setAttribute('rel','stylesheet');s.setAttribute('type','text/css'); document.getElementsByTagName('head')[0].appendChild(s);var l=document.getElementsByTagName('img');for(var i=0;il.length;i++){if(l[i].width>176){l[i].height*=176/l[i].width;l[i].width=176}else if(l[i].naturalWidth>176){var e=176/l[i].naturalWidth;l[i].height=l[i].naturalHeight*e;l[i].width=176;}}void(0);
复制代码


直接在浏览器中编辑当前页面
  1. javascript:document.body.contentEditable = 'true'; document.designMode='on'; void 0
复制代码


网页调亮
  1. javascript:(function(){function RGBtoHSL(RGBColor){with(Math){var R,G,B;var cMax,cMin;var sum,diff;var Rdelta,Gdelta,Bdelta;var H,L,S;R=RGBColor[0];G=RGBColor[1];B=RGBColor[2];cMax=max(max(R,G),B);cMin=min(min(R,G),B);sum=cMax+cMin;diff=cMax-cMin;L=sum/2;if(cMax==cMin){S=0;H=0;}else{if(L<=(1/2))S=diff/sum;else S=diff/(2-sum);Rdelta=R/6/diff;Gdelta=G/6/diff;Bdelta=B/6/diff;if(R==cMax)H=Gdelta-Bdelta;else if(G==cMax)H=(1/3)+Bdelta-Rdelta;else H=(2/3)+Rdelta-Gdelta;if(H<0)H+=1;if(H>1)H-=1;}return[H,S,L];}}function getRGBColor(node,prop){var rgb=getComputedStyle(node,null).getPropertyValue(prop);var r,g,b;if(/rgb\((\d+),\s(\d+),\s(\d+)\)/.exec(rgb)){r=parseInt(RegExp.$1,10);g=parseInt(RegExp.$2,10);b=parseInt(RegExp.$3,10);return[r/255,g/255,b/255];}return rgb;}function hslToCSS(hsl){return "hsl("+Math.round(hsl[0]*360)+", "+Math.round(hsl[1]*100)+"%, "+Math.round(hsl[2]*100)+"%)";}var props=["color","background-color","border-left-color","border-right-color","border-top-color","border-bottom-color"];var props2=["color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor"];if(typeof getRGBColor(document.documentElement,"background-color")=="string")document.documentElement.style.backgroundColor="white";revl(document.documentElement);function revl(n){var i,x,color,hsl;if(n.nodeType==Node.ELEMENT_NODE){for(i=0;x=n.childNodes[i];++i)revl(x);for(i=0;x=props[i];++i){color=getRGBColor(n,x);if(typeof(color)!="string"){hsl=RGBtoHSL(color);hsl[2] = Math.pow(hsl[2], 5/6);n.style[props2[i]]=hslToCSS(hsl);}}}}})()
复制代码


网页调暗
  1. javascript:(function(){function RGBtoHSL(RGBColor){with(Math){var R,G,B;var cMax,cMin;var sum,diff;var Rdelta,Gdelta,Bdelta;var H,L,S;R=RGBColor[0];G=RGBColor[1];B=RGBColor[2];cMax=max(max(R,G),B);cMin=min(min(R,G),B);sum=cMax+cMin;diff=cMax-cMin;L=sum/2;if(cMax==cMin){S=0;H=0;}else{if(L<=(1/2))S=diff/sum;else S=diff/(2-sum);Rdelta=R/6/diff;Gdelta=G/6/diff;Bdelta=B/6/diff;if(R==cMax)H=Gdelta-Bdelta;else if(G==cMax)H=(1/3)+Bdelta-Rdelta;else H=(2/3)+Rdelta-Gdelta;if(H<0)H+=1;if(H>1)H-=1;}return[H,S,L];}}function getRGBColor(node,prop){var rgb=getComputedStyle(node,null).getPropertyValue(prop);var r,g,b;if(/rgb\((\d+),\s(\d+),\s(\d+)\)/.exec(rgb)){r=parseInt(RegExp.$1,10);g=parseInt(RegExp.$2,10);b=parseInt(RegExp.$3,10);return[r/255,g/255,b/255];}return rgb;}function hslToCSS(hsl){return "hsl("+Math.round(hsl[0]*360)+", "+Math.round(hsl[1]*100)+"%, "+Math.round(hsl[2]*100)+"%)";}var props=["color","background-color","border-left-color","border-right-color","border-top-color","border-bottom-color"];var props2=["color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor"];if(typeof getRGBColor(document.documentElement,"background-color")=="string")document.documentElement.style.backgroundColor="white";revl(document.documentElement);function revl(n){var i,x,color,hsl;if(n.nodeType==Node.ELEMENT_NODE){for(i=0;x=n.childNodes[i];++i)revl(x);for(i=0;x=props[i];++i){color=getRGBColor(n,x);if(typeof(color)!="string"){hsl=RGBtoHSL(color);hsl[2] = Math.pow(hsl[2], 6/5);n.style[props2[i]]=hslToCSS(hsl);}}}}})()
复制代码


网页颜色反相(浅变暗,暗变浅,感觉这个比上面两个方便)
  1. javascript:(function(){function RGBtoHSL(RGBColor){with(Math){var R,G,B;var cMax,cMin;var sum,diff;var Rdelta,Gdelta,Bdelta;var H,L,S;R=RGBColor[0];G=RGBColor[1];B=RGBColor[2];cMax=max(max(R,G),B);cMin=min(min(R,G),B);sum=cMax+cMin;diff=cMax-cMin;L=sum/2;if(cMax==cMin){S=0;H=0;}else{if(L<=(1/2))S=diff/sum;else S=diff/(2-sum);Rdelta=R/6/diff;Gdelta=G/6/diff;Bdelta=B/6/diff;if(R==cMax)H=Gdelta-Bdelta;else if(G==cMax)H=(1/3)+Bdelta-Rdelta;else H=(2/3)+Rdelta-Gdelta;if(H<0)H+=1;if(H>1)H-=1;}return[H,S,L];}}function getRGBColor(node,prop){var rgb=getComputedStyle(node,null).getPropertyValue(prop);var r,g,b;if(/rgb\((\d+),\s(\d+),\s(\d+)\)/.exec(rgb)){r=parseInt(RegExp.$1,10);g=parseInt(RegExp.$2,10);b=parseInt(RegExp.$3,10);return[r/255,g/255,b/255];}return rgb;}function hslToCSS(hsl){return "hsl("+Math.round(hsl[0]*360)+", "+Math.round(hsl[1]*100)+"%, "+Math.round(hsl[2]*100)+"%)";}var props=["color","background-color","border-left-color","border-right-color","border-top-color","border-bottom-color"];var props2=["color","backgroundColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor"];if(typeof getRGBColor(document.documentElement,"background-color")=="string")document.documentElement.style.backgroundColor="white";revl(document.documentElement);function revl(n){var i,x,color,hsl;if(n.nodeType==Node.ELEMENT_NODE){for(i=0;x=n.childNodes[i];++i)revl(x);for(i=0;x=props[i];++i){color=getRGBColor(n,x);if(typeof(color)!="string"){hsl=RGBtoHSL(color);hsl[2]=1-hsl[2];n.style[props2[i]]=hslToCSS(hsl);}}}}})()
复制代码


edit styles(这还需要说明么?- -)
  1. javascript:(function(){function init(){var newline=unescape(%22%%22+%220A%22),importCount=0,L=[];dead=false;oldCSS=null;x=opener;ta=document.f.ta;ta.select();if(x.editStyles){ta.value=x.editStyles.innerHTML;update();return;}ta.value=%22/* Type CSS rules here and they will be applied%22+newline+%22to pages from '%22+location.host+%22'%22+newline+%22immediately as long as you keep this window open. */%22+newline+newline;function add(s){if(!s.disabled){var y={sheet:s,readable:true,label:%22Imported%22,inline:false,shorturl:%22%22,fulltext:%22%22};try{for(var k=0,m;m=s.cssRules[k];++k)if(m.type==3)add(m.styleSheet);}catch(er){y.readable=false;}L.push(y);if(s.ownerNode){y.label=s.ownerNode.tagName.toUpperCase()+%22-tag%22;if(!s.ownerNode.getAttribute(%22src%22)&&!s.ownerNode.href)y.inline=true;}if(y.inline){y.label=%22Inline %22+y.label;y.fulltext=fix(s.ownerNode.innerHTML);}else if(s.href.substr(0,13)==%22data:text/css%22){y.shorturl=%22 contained in a data: URL%22;y.fulltext=fix(unescape(s.href.slice(14)));}else{++importCount;y.importtext=%22@import \%22%22+s.href+%22\%22;%22;y.shorturl=%22 %22+s.href.split('/').reverse()[0];if(!y.readable){y.fulltext=%22/* Out-of-domain; imported above. */%22;}else if(s.href.substr(0,5)!=%22http:%22){y.fulltext=%22/* Non-http; imported above. */%22;}else{var loadingText=%22/* Loading (%22+(L.length-1)+%22) */%22;y.fulltext=loadingText;var p=new XMLHttpRequest();p.onload=function(e){ta.value=ta.value.replace(y.importtext+newline,%22%22);y.fulltext=p.responseText;ta.value=ta.value.replace(loadingText,fix(y.fulltext));ta.value=ta.value.replace(firstNote+newline,%22%22);};p.open(%22GET%22,s.href);p.send(null);}}}}function fix(s){while((s[0]==newline)&&s.length>1)s=s.slice(1);while((s[s.length-1]==newline)&&s.length>1)s=s.substr(0,s.length-1);s=s.replace(/@import.*;/ig,function(){return %22/* %22+RegExp.lastMatch+%22 */%22;});return s;}for(var i=0,ss;ss=x.document.styleSheets[i];++i)add(ss);var imports=%22%22,main=%22%22;var firstNote=%22/**** Style sheets whose contents could be loaded were ****/%22+newline+%22/**** imported instead.  Rule order may be incorrect   ****/%22+newline+%22/**** as a result. ****/%22+newline;if(importCount){ta.value+=firstNote;}for(var i=0;ss=L[i];++i){if(ss.importtext){imports+=ss.importtext+newline;}main+=%22/**** %22+ss.label+%22 style sheet%22+ss.shorturl+%22 ****/%22+newline;main+=newline;main+=ss.fulltext;main+=newline;main+=newline;main+=newline;}ta.value+=imports+newline+main;update();}function update(){try{if(!x||x.closed){ta.style.backgroundColor=%22#ddd%22;return;}x.editStyles;}catch(er){ta.style.backgroundColor=%22#fdc%22;setTimeout(update,150);dead=true;return;}if(dead){dead=false;ta.style.backgroundColor=%22%22;oldCSS=null;}if(!x.editStyles){var newSS;newSS=x.document.createElement(%22style%22);newSS.type=%22text/css%22;x.document.getElementsByTagName(%22head%22)[0].appendChild(newSS);x.editStyles=newSS;oldCSS=null;for(var i=0,ss;ss=x.document.styleSheets[i];++i)ss.disabled=true;}if(oldCSS!=ta.value){oldCSS=ta.value;x.editStyles.innerHTML=ta.value;}setTimeout(update,150);}y=open('','','resizable,scrollbars=yes,width=550,height=520');y.document.write('<title>Edit Styles</title><style>.ec { width: 100%; height: 100%; border: none; margin: 0px; padding: 0px; }</style><body class=%22ec%22><form name=%22f%22 style=%22margin: 0px;%22 class=%22ec%22><textarea name=%22ta%22 wrap=%22soft%22 style=%22margin: 0px; border: 0px; width:100%; height:100%;%22 class=%22ec%22></textarea><script>'+update+init+'init();<'+'/script>');y.document.close();})()
复制代码


另一款网址缩短(楼主提供滴是google的,问题怎么复制不了啊,so,这款是可以复制的,不过会跳到他们页面去,反正都有利有弊。)
  1. javascript:void(location.href='http://tinyurl.com/create.php?url='+location.href)
复制代码


呼出Design工具栏(网页设计工具)
  1. javascript:function%20fnStartDesign(sUrl)%20{var%20nScript%20=%20document.createElement('script');nScript.setAttribute('language','JavaScript');nScript.setAttribute('src',sUrl);document.body.appendChild(nScript);}fnStartDesign('http://www.sprymedia.co.uk/design/design/media/js/design-loader.js');
复制代码


个人觉得很厉害的保存网址为pdf的小书签,在创建文件前会让你设置需要保存的内容,删除多余的信息。得到的文件可以下载或者把缩短的网址通过Email或twitter发送
  1. javascript:(function(){pfstyle='bk';_pnicer_script=document.createElement('SCRIPT');_pnicer_script.type='text/javascript';_pnicer_script.src='http://cdn.printfriendly.com/printfriendly.js?x='+(Math.random());document.getElementsByTagName('head')[0].appendChild(_pnicer_script);_pnicer_css=document.createElement('LINK');_pnicer_css.rel='stylesheet';_pnicer_css.href='http://cdn.printfriendly.com/printfriendly.css';_pnicer_css.type='text/css';_pnicer_css.media='screen';document.getElementsByTagName('head')[0].appendChild(_pnicer_css);})();
复制代码

作者: fly2never    时间: 2010-7-30 13:33

本帖最后由 fly2never 于 2010-7-30 13:35 编辑

贡献一个自动跳转到下一页的 具体介绍看这里 http://bbs.ioage.com/cn/thread-157284-1-1.html
  1. (function() {
  2.     var checked = false;
  3.     var delay = false;
  4.     var next = {};
  5.     var previous = {};
  6.     // 下一页链接里的文字
  7.     next.texts      = [ 'next',
  8.                         'next page',
  9.                         'old',
  10.                         'older',
  11.                         'earlier',
  12.                         '下页',
  13.                         '下頁',
  14.                         '下一页',
  15.                         '下一頁',
  16.                         '后一页',
  17.                         '后一頁',
  18.                         '翻下页',
  19.                         '翻下頁',
  20.                         '后页',
  21.                         '后頁',
  22.                         '下翻',
  23.                         '下一个',
  24.                         '下一张',
  25.                         '下一幅',
  26.                         '下一节',
  27.                         '下一章',
  28.                         '下一篇',
  29.                         '后一章',
  30.                         '后一篇'
  31.                       ];
  32.     // 上一页链接里的文字
  33.     previous.texts  = [ 'previous',
  34.                         'prev',
  35.                         'previous page',
  36.                         'new',
  37.                         'newer',
  38.                         'later',
  39.                         '上页',
  40.                         '上頁',
  41.                         '上一页',
  42.                         '上一頁',
  43.                         '前一页',
  44.                         '前一頁',
  45.                         '翻上页',
  46.                         '翻上頁',
  47.                         '前页',
  48.                         '前頁',
  49.                         '上翻',
  50.                         '上一个',
  51.                         '上一张',
  52.                         '上一幅',
  53.                         '上一节',
  54.                         '上一章',
  55.                         '上一篇',
  56.                         '前一章',
  57.                         '前一篇'
  58.                       ];
  59.     // 可能会误判的关键词
  60.     next.miswords   = { "下一章": 30,
  61.                         "下一篇": 30,
  62.                         "后一章": 30,
  63.                         "后一篇": 30,
  64.                         "下一节": 30,
  65.                         ">>": 2000,
  66.                         "»": 2000
  67.                       }
  68.     previous.miswords = { "上一章": 30,
  69.                           "上一篇": 30,
  70.                           "前一章": 30,
  71.                           "前一篇": 30,
  72.                           "上一节": 30,
  73.                           "<<": 2000,
  74.                           "«": 2000
  75.                         }

  76.     // 最后添加一些论坛使用的翻页符号
  77.     next.texts.push(">>");
  78.     next.texts.push(">");
  79.     next.texts.push("»");
  80.     next.texts.push("›");
  81.     previous.texts.push("<<");
  82.     previous.texts.push("<");
  83.     previous.texts.push("«");
  84.     previous.texts.push("‹");

  85.     // 翻页文字的前面和后面可能包含的字符(正则表达式)
  86.     var preRegexp  = '(^\\s*(?:[<‹«]*|[>›»]*|[\\(\\[『「[【]?)\\s*)';
  87.     var nextRegexp = '(\\s*(?:[>›»]*|[\\)\\]』」]】]?)\\s*$)';

  88.     function checkLinks() {
  89.       var link, text, ldnc, lnc, ldpc, lpc, num, digCurFound, linkNumber, found, tmpNode;
  90.       var regexp = new RegExp();
  91.       // 查找相应的链接
  92.       var links = document.getElementsByTagName('A');
  93.       for (var i = 0; i < links.length; i++) {
  94.         link = links[i];

  95.         // 跳过不起作用的链接
  96.         if (!link.offsetParent || link.offsetWidth == 0 || link.offsetHeight == 0 || !link.hasAttribute("href") && !link.hasAttribute("onclick"))
  97.           continue;
  98.         // 跳过日历
  99.         if (/(?:^|\s)(?:monthlink|weekday|day|day[\-_]\S+)(?:\s|$)/i.test(link.className))
  100.           continue;

  101.         if (/^nextlink/i.test(link.id) || /^linknext/i.test(link.id) ||
  102.             /(^|\s)nextlink/i.test(link.className) || /(^|\s)linknext/i.test(link.className))
  103.           next.link = link;
  104.         if (/^prev(ious)?link/i.test(link.id) || /^linkprev(ious)?/i.test(link.id) ||
  105.             /(^|\s)prev(ious)?link/i.test(link.className) || /(^|\s)linkprev(ious)?/i.test(link.className))
  106.           previous.link = link;

  107.         text = link.textContent;
  108.         if (!text) {
  109.           // 若链接中没有文字,则检查图片的alt属性、链接或图片的title
  110.           for (var img in link.childNodes) {
  111.             if (img.localName == "IMG") {
  112.               text = img.alt || link.title || img.title;
  113.               if (text) break;
  114.             }
  115.           }
  116.           if (!text) continue;
  117.         }
  118.         text = text.toLowerCase().replace(/^\s+|\s+$/g, "");
  119.         if (!text) continue;

  120.         // 纯数字链接
  121.         if (isDigital(text)) {
  122.           if (digCurFound) continue;
  123.           linkNumber = parseInt(RegExp.$1);

  124.           // 检测下一个位置是否是当前页面的页数
  125.           if ((tmpNode = getCurrentPageNode(link, linkNumber, 1)) && tmpNode) {
  126.             digCurFound = true;
  127.             previous.link = link;
  128.             previous.found = true;
  129.             previous.pos = i;
  130.             // 再检测下下一个位置是否是“下一页”的链接
  131.             if (getNextLink(tmpNode, linkNumber+2, true))
  132.               break;
  133.             // 设置往后的30个位置以内为“下一页”的可能链接,以提高检测速度。
  134.             ldnc = i + 30;
  135.           }
  136.           // 检测上一个位置是否是当前页面的页数
  137.           else if (getCurrentPageNode(link, linkNumber, -1)) {
  138.             digCurFound = true;
  139.             next.link = link;
  140.             next.found = true;
  141.             next.pos = i;
  142.             ldpc = i + 30;
  143.             continue;
  144.           }
  145.           // 检测自身是否是当前页面的页数
  146.           else if (getCurrentPageNode(link, linkNumber, 0)) {
  147.             digCurFound = true;
  148.             // 再检测下一个位置是否是“下一页”的链接
  149.             if (getNextLink(link, linkNumber+1, true)) {
  150.               next.pos = i;
  151.               ldpc = i + 30;
  152.               continue;
  153.             }
  154.             // 设置往后的30个位置以内为“下一页”的可能链接,以提高检测速度。
  155.             ldnc = i + 30;
  156.           }
  157.           continue;
  158.         }
  159.         else {
  160.           found = false;
  161.           if (!next.found && !(lnc < i) && !(ldnc < i)) {
  162.             for (var j = 0; j < next.texts.length; j++) {
  163.               regexp.compile(preRegexp + next.texts[j] + nextRegexp, 'i');
  164.               if (regexp.test(text)) {
  165.                 // 检测到“下一页”的链接
  166.                 found = true;
  167.                 next.link = link;
  168.                 num = next.miswords[next.texts[j]];
  169.                 // 若“下一页”的词语有可能会误判时,最多再检测预定个数的链接。
  170.                 (num == null) ? next.found = true : lnc = i + num;
  171.                 break;
  172.               }
  173.             }
  174.           }
  175.           if (!next.digital && lnc < i) next.found = true;

  176.           if (!found && !previous.found && !(lpc < i) && !(ldpc < i)) {
  177.             for (var j = 0; j < previous.texts.length; j++) {
  178.               regexp.compile(preRegexp + previous.texts[j] + nextRegexp, 'i');
  179.               if (regexp.test(text)) {
  180.                 // 检测到“上一页”的链接
  181.                 previous.link = link;
  182.                 num = previous.miswords[previous.texts[j]];
  183.                 // 若“上一页”的词语有可能会误判时,最多再检测预定个数的链接。
  184.                 (num == null) ? previous.found = true : lpc = i + num;
  185.                 break;
  186.               }
  187.             }
  188.           }
  189.           if (lpc < i) previous.found = true;
  190.           // 重新设置纯数字链接未被检查
  191.           digCurFound = null;
  192.         }

  193.         // 找到“上一页”和“下一页”的链接或找到其中一个而另一个超过规定范围没找到,将不再查找。
  194.         if (next.found && previous.found ||
  195.             next.found && i > next.pos + 30 ||
  196.             previous.found && i > previous.pos + 30)
  197.           break;
  198.       }
  199.       // 通过以上方法没有找到“下一页”的,把第一次检测出来的数字1的链接作为当前页,2作为“下一页”。
  200.       if (!next.found /*&& !next.link*/ && next.digital)
  201.         next.link = next.digital;

  202.       if (next.link) next.found = true;
  203.       if (previous.link) previous.found = true;

  204.       if (!next.found && !previous.found)
  205.         checkButtons();
  206.     }

  207.     // 检查翻页按钮
  208.     function checkButtons() {
  209.       var but, text, found;
  210.       var regexp = new RegExp();
  211.       var buts = document.getElementsByTagName('INPUT');
  212.       for (var i = 0; i < buts.length; i++) {
  213.         but = buts[i];
  214.         if (but.hasAttribute("disabled") || !(/^button$/i.test(but.type) && but.getAttribute("onclick"))) continue;

  215.         text = but.value;
  216.         found = false;
  217.         if (!next.found) {
  218.           for (var j = 0; j < next.texts.length; j++) {
  219.             regexp.compile(preRegexp + next.texts[j] + nextRegexp, 'i');
  220.             if (regexp.test(text)) {
  221.               // 检测到“下一页”的按钮
  222.               next.link = but;
  223.               next.found = found = true;
  224.               break;
  225.             }
  226.           }
  227.         }

  228.         if (!found && !previous.found) {
  229.           for (var j = 0; j < previous.texts.length; j++) {
  230.             regexp.compile(preRegexp + previous.texts[j] + nextRegexp, 'i');
  231.             if (regexp.test(text)) {
  232.               // 检测到“上一页”的按钮
  233.               previous.link = but;
  234.               previous.found = true;
  235.               break;
  236.             }
  237.           }
  238.         }
  239.         if (next.found && previous.found) break;
  240.       }
  241.     }

  242.     // 取得相邻的纯数字节点,type: 1 下一个;-1 上一个
  243.     function getSiblingNode(node, type) {
  244.       if (!node) return null;
  245.       node = getSibling(node, type);
  246.       while (node && (node.nodeName == "#coment" ||
  247.             (/^\s*[\]]】]?[,\|]?\s*[\[[【]?\s*$/.test(node.textContent))))
  248.         node = getSibling(node, type);
  249.       return node;
  250.     }
  251.     function getSibling(aNode, type) {
  252.       if (!aNode) return null;
  253.       if (isOnlyNode(aNode)) {
  254.         try {
  255.           aNode = (type == 1 ? aNode.parentNode.nextSibling : aNode.parentNode.previousSibling);
  256.           if (skipNode(aNode))
  257.             aNode = (type == 1 ? aNode.nextSibling : aNode.previousSibling);
  258.           aNode = aNode.childNodes[0];
  259.           if (skipNode(aNode))
  260.             aNode = aNode.nextSibling;
  261.         }
  262.         catch (e) {return null;}
  263.       }
  264.       else {
  265.         aNode = (type == 1 ? aNode.nextSibling : aNode.previousSibling);
  266.       }
  267.       return aNode;
  268.     }
  269.     function isOnlyNode(n) {
  270.       return !n.nextSibling && !n.previousSibling ||
  271.              !n.nextSibling && skipNode(n.previousSibling) && !n.previousSibling.previousSibling ||
  272.              !n.previousSibling && skipNode(n.nextSibling) && !n.nextSibling.nextSibling ||
  273.              skipNode(n.previousSibling) && !n.previousSibling.previousSibling &&
  274.              skipNode(n.nextSibling) && !n.nextSibling.nextSibling;
  275.     }
  276.     function skipNode(sNode) {
  277.       return sNode && /*sNode.nodeName == "#text" &&*/ (/^\s*$/.test(sNode.textContent));
  278.     }

  279.     // 检测是否有下一页的纯数字链接,number:页数
  280.     function getNextLink(node, number, set) {
  281.       var tNode = getSiblingNode(node, 1);
  282.       if (tNode && tNode.nodeName == "A" && isDigital(tNode.textContent)) {
  283.         if (RegExp.$1 == number) {
  284.           // 找到纯数字链接
  285.           if (set) {
  286.             next.link = tNode;
  287.             next.found = true;
  288.           }
  289.           return tNode;
  290.         }
  291.       }
  292.       return null;
  293.     }

  294.     function isDigital(str, t) {
  295.       str = str.replace(/^\s+|\s+$/g, "");
  296.       if (t == -1)
  297.         str = str.split(/\s+/).pop();
  298.       else if (t == 1)
  299.         str = str.split(/\s+/)[0];
  300.       return (/^(\d+)$/.test(str)) ||
  301.              (/^\[\s?(\d+)\s?\]$/.test(str)) ||
  302.              (/^【\s?(\d+)\s?】$/.test(str)) ||
  303.              (/^[\s?(\d+)\s?]$/.test(str)) ||
  304.              (/^<\s?(\d+)\s?>$/.test(str));
  305.     }

  306.     // 判断是否是当前页面的数字,type:-1,0,1 分别是要判别的上一个、当前、下一个节点
  307.     function getCurrentPageNode(node, linkNum, type) {
  308.       var tNode;
  309.       if (type == 0) {
  310.         tNode = getSiblingNode(node, 1) || getSiblingNode(node, -1);
  311.         if (!tNode) return null;
  312.         if (!node.hasAttribute("onclick") && node.href != tNode.href &&
  313.             (!node.hasAttribute("href") && isDigital(node.textContent, type) ||
  314.             !(/\/#[^\/]+$/.test(node.href)) && node.href == location.href && isDigital(node.textContent, type))) {
  315.           if (linkNum > 0 && RegExp.$1 == linkNum) return node;
  316.         }
  317.         // 某些论坛处在第一页时,实际链接和当前页链接不符,只有和其余纯数字链接的结构或颜色不同时,
  318.         // 才使用纯数字的“2”作为“下一页”的链接。
  319.         else if (!next.digital && (/^\s*[\[[【]?1[\]]】]?\s*$/.test(node.textContent))) {
  320.           var two = getNextLink(node, 2);
  321.           if (two && difDigital(node, two))
  322.             next.digital = two;
  323.         }
  324.       }
  325.       else {
  326.         tNode = getSiblingNode(node, type);
  327.         if (!tNode) return null;
  328.         if (tNode.nodeName != "A" && isDigital(tNode.textContent, type) ||
  329.             tNode.nodeName == "A" && !tNode.hasAttribute("onclick") && node.href != tNode.href &&
  330.             (!tNode.hasAttribute("href") && isDigital(tNode.textContent, type) ||
  331.             !(/\/#[^\/]+$/.test(tNode.href)) && tNode.href == location.href && isDigital(tNode.textContent, type))) {
  332.           var n = linkNum + type;
  333.           if (n > 0 && RegExp.$1 == n) {
  334.             if (next.digital) next.digital = null;
  335.             return tNode;
  336.           }
  337.         }
  338.       }
  339.       return null;
  340.     }

  341.     function difDigital(node1, node2) {
  342.       if (getStructure(node1) == getStructure(node2) && getStyleColor(node1) == getStyleColor(node2))
  343.         return false;
  344.       return true;
  345.     }
  346.     function getStructure(aNode) {
  347.       return aNode.innerHTML.replace(/\d+/, "");
  348.     }
  349.     function getStyleColor(aNode) {
  350.       return document.defaultView.getComputedStyle(aNode, null).getPropertyValue("color");
  351.     }

  352.     function openLink(linkNode) {
  353.       if (!linkNode) return;
  354.       var hf = linkNode.getAttribute("href");
  355.       if (!linkNode.hasAttribute("onclick") && hf && !(/^#/.test(hf)) && linkNode.href != location.href) {
  356.         cleanVars();
  357.         location.assign(linkNode.href);
  358.       }
  359.       else {
  360.         // 有些4D鼠标摆动一下滚轮会触发多下的方向键,故增设一个延迟参数,使它只翻一页。
  361.         delay = true;
  362.         setTimeout(cleanVars, 300);
  363.         var e = document.createEvent("MouseEvents");
  364.         e.initMouseEvent("click", 1, 1, window, 1, 0,0,0,0,0,0,0,0,0, linkNode);
  365.         linkNode.dispatchEvent(e);
  366.       }
  367.     }
  368.     function cleanVars() {
  369.       try {
  370.         checked = false;
  371.         delay = false;
  372.         next.link = next.found = next.digital = null;
  373.         previous.link = previous.found = previous.digital = null;
  374.         delete next.pos;
  375.         delete previous.pos;
  376.       } catch(e) {}
  377.     }

  378.     // 检查过且没有发现上一页或下一页的连接,则退出
  379.     if (checked && !next.found && !previous.found)
  380.       return;

  381.     if (!checked) {
  382.       checkLinks();
  383.       checked = true;
  384.     }

  385.     openLink(next.link);
  386. })();
复制代码





欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2