阅读:6081回复:17
请教关于google代码站内搜索的问题
代码如下:
javascript:q = %22%22 + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (!q) q = prompt(%22You didn't select any text. Enter a search phrase:%22, %22%22); if (q!=null) location=(%22http://www.google.com/search?num=100&ie=utf-8&oe=utf-8&q=site:%22 + escape(location.hostname) + %22 \%22%22 + escape(q.replace(/\%22/g,%22%22)) + %22\%22%22).replace(/ /g, %22+%22); void 0 之后保存为书签就可以使用了 但是这个代码只能识别英文而不能识别中文字符,即使有代码中添加utf-8或者gb2312之类的语句也还是不行,研究了好久也搞不定,请问各位朋友有没有办法解决这个问题? |
|
1楼#
发布于:2007-11-12 17:28
javascript:q%20=%20%22%22%20+%20(window.getSelection%20?%20window.getSelection()%20:%20document.getSelection%20?%20document.getSelection()%20:%20document.selection.createRange().text);%20if%20(!q)%20q%20=%20prompt(%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%85%B3%E9%94%AE%E8%AF%8D:%22,%20%22%22);%20if%20(q!=null)%20{var%20qlocation=%22%20%22;qlocation=(%22http://www.google.com/search?num=100&hl=zh-CN&newwindow=1&q=site:%22%20+%20escape(location.hostname)+%22+%22+q+%22%22);window.open(qlocation);}%20void%200 |
|
|
2楼#
发布于:2007-11-12 17:28
kmc:javascript:q%20=%20%22%22%20+%20(window.getSelection%20?%20window.getSelection()%20:%20document.getSelection%20?%20document.getSelection()%20:%20document.selection.createRange().text);%20if%20(!q)%20q%20=%20prompt(%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%85%B3%E9%94%AE%E8%AF%8D:%22,%20%22%22);%20if%20(q!=null)%20{var%20qlocation=%22%20%22;qlocation=(%22http://www.google.com/search?num=100&hl=zh-CN&newwindow=1&q=site:%22%20+%20escape(location.hostname)+%22+%22+q+%22%22);window.open(qlocation);}%20void%200回到原帖 太感谢这位兄弟了,请问百度的代码又应该如何写? |
|
3楼#
发布于:2007-11-12 17:28
不是很懂,写不好,就照着修改出了个不支持中文的,剩下等高手
javascript:wd%20=%20%22%22%20+%20(window.getSelection%20?%20window.getSelection()%20:%20document.getSelection%20?%20document.getSelection()%20:%20document.selection.createRange().text);%20if%20(!wd)%20q%20=%20prompt(%22%E8%AF%B7%E8%BE%93%E5%85%A5%E5%85%B3%E9%94%AE%E8%AF%8D:%22,%20%22%22);%20if%20(wd!=null)%20{var%20wdlocation=%22%20%22;wdlocation=(%22http://www.baidu.com/s?&wd=+site:%22%20+%20escape(location.hostname)+%22+%22+wd+%22%22);window.open(wdlocation);}%20void%200 |
|
|
4楼#
发布于:2007-11-12 17:28
请问google的那段代码是如何控制识别中文的?
|
|
5楼#
发布于:2007-11-12 17:28
这就是我觉得奇怪的地方……
估计问题不在代码上,而是在搜索引擎自己,同样传一段编码过后的关键字,Google能解析,百度不能。 |
|
|
6楼#
发布于:2007-11-12 17:28
今天发现一个问题,用代码搜索出来的结果无法打开google快照,但是在google中国网站上进行相同的搜索却可以打开快照,奇怪了
|
|
7楼#
发布于:2007-11-12 17:28
两者打开快照的时候用的服务器ip地址好像不一样,不知道怎样解决这个问题?
|
|
8楼#
发布于:2007-11-12 17:28
Baidu的站内搜索还是编码问题,应该要把汉字编码之后发出去,网上找到了将汉字编码的函数,颇长,把记事本、EmEditor、Source Insight都给干掉了,不好折腾,放弃了
网页快照还是中国长城的问题,还是用版主提供的google in english, preference,语言设置,中文这样的办法,可以使用google.com进行搜索 |
|
9楼#
发布于:2007-11-12 17:28
用OpenSearchFox不好吗?
|
|
10楼#
发布于:2007-11-12 17:28
|
|
|
11楼#
发布于:2007-11-12 17:28
bookmarklet不是很熟,看看是不是你们想要的? javascript:var q=window.getSelection().toString();if(q==null || q.match(/^\s*$/))q=prompt("Key Words:");window.open('http://www.baidu.com/s?ie=utf-8&wd=site:('+location.hostname+') '+q) |
|
12楼#
发布于:2007-11-12 17:28
谢谢无事,我试了一下,
('+location.hostname+') 这里应该不需要那一对括号,然后就能搜索到编码好的中文字串 点击后会弹出个新窗口,但本窗口会刷新成一个错误提示: [object XPCCrossOriginWrapper [object Window]] |
|
|
13楼#
发布于:2007-11-12 17:28
我这里压制了所有新窗口,所以会在本地窗口刷新结果。 如果想在本地窗口显示结果可以改成下面的样子。
javascript:var q=window.getSelection().toString();if(q==null || q.length==0)q=prompt(%22Key Words:%22);window.location='http://www.baidu.com/s?ie=utf-8&wd=site:('+location.hostname+') '+q; |
|
14楼#
发布于:2007-11-12 17:28
我是说,本地窗口不变,打开新窗口显示搜索结果呢?
|
|
|
上一页
下一页