您的位置:首页 > Web前端 > JavaScript

【google chrome 一键打开 谷歌跳转的页面+JS Replace】谷歌无法打开网页的时候,提取网页中url的部分

2013-07-20 14:34 701 查看
经常在谷歌搜索,遇到网页无法打开,然后就停留在比如:http://www.google.com.hk/search?newwindow=1&safe=strict&site=&source=hp&q=facebook&btnK=Google+%E6%90%9C%E7%B4%A2

这个页面就无法打开了,因为搜索了连接url包括某些关键字 或者 搜索的关键字 被 中国大陆 给屏蔽掉的。此时谷歌 也暂时无法再使用了。

对某些d'ang ‘pai的行为感到太气愤且无奈了。

比如 停留的URL 是:

http://www.google.com.hk/url?sa=t&rct=j&q=luachina+&source=web&cd=6&ved=0CEgQFjAF&url=http%3a%2f%2fbbs%2eluaer%2ecn%2fthread-Lua-fid-8%2ehtml&ei=VifqUZHIBIvrkAXN-oCoAg&usg=AFQjCNEkr6XFapYa_2kyEAg4QuawiVvqvw

上面的连接很正常,查找资料而已,却打不开,间歇性的,偶尔可以打开,完全没有非法内容。

http://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CDkQFjAC&url=%68%74%74%70%3a%2f%2f%61%6e%74%69%63%68%69%6e%61%67%66%77%2e%62%6c%6f%67%73%70%6f%74%2e%63%6f%6d%2f&ei=yvkaUoedGoiwiQeH8oGoBA&usg=AFQjCNEmeVSiFesqcW2vteYrfAlQErfxYQ&cad=rja

这个连接包括了 blogspot.com 所以直接打不开【如果协议改成https,那么就不会停留在这里了,直接是目标URL的网页无法打开】。

那么分析下 有个url的 参数 后面就是目标的网页,就是被URL编码了,所以为了方面,写了个js脚本 来解析。

//js获得url参数?v1

javascript:/* From http://www.cnblogs.com/QiuYun/archive/2007/02/02/638100.html */function GetUrlParms() { var args=new Object(); var query=location.search.substring(1);/*获取查询串 */ var pairs=query.split("&");/*在逗号处断开 */ for(var i=0;i<pairs.length;i++) { var pos=pairs[i].indexOf('=');/*查找name=value */ if(pos==-1) continue;/*如果没有找到就跳过 */ var argname=pairs[i].substring(0,pos);/*提取name */ var value=pairs[i].substring(pos+1);/*提取value */ args[argname]=unescape(value);/*存为属性 */ } return args;};var args = new Object();args = GetUrlParms();var a=document.createElement("h1");a.setAttribute("style","border:2px solid green;background-color:white;display:block;position:absolute;z-index:9999;width:800px;height:100px;top:50px;margin:0 auto;");a.innerHTML="<a href='"+args['url']+"'>"+args['url']+"</a>";document.body.appendChild(a);return false;


拖到浏览器的书签,我的是在chrome下新建立的书签,输入的内容。这一版不太好,获取的是location的字符串,不能自定义,所以改动了下:

//js获得url参数?v2

javascript:/****** From http://www.cnblogs.com/QiuYun/archive/2007/02/02/638100.html ******/function GetUrlParms(str) { var args=new Object(); var query;if(str==undefined){query=location.search.substring(1);/*获得?号后面的内容*/}else{query=str.split("?");query=query[1];}/*获取查询串 =>DEBUG: alert("query="+query); */var pairs=query.split("&");/*在逗号处断开 */ for(var i=0;i<pairs.length;i++) { var pos=pairs[i].indexOf('=');/*查找name=value */ if(pos==-1) continue;/*如果没有找到就跳过 */ var argname=pairs[i].substring(0,pos);/*提取name */ var value=pairs[i].substring(pos+1);/*提取value */ args[argname]=unescape(value);/*存为属性 */ } return args;};/************Main***********/var a=prompt("请输入要获得URL的链接:");if(a==null){return false;}var args = new Object();args = GetUrlParms(a);prompt("你可以复制了",args['url']);return false;


这样可以点击此书签,将复制的URL 输入,回车,复制获得的URL路径。打开新的浏览器标签 即可。其实可以把 url 也加入到 prompt里面,可以设置个默认的值。

-------------------------

不知道为什么google谷歌chrome的这个页面无法获取到真实的URL,只可以获取window.location.href="data:text/html,chromewebdata" ,这个页面如何通过js获取真实URL呢?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐