bssln
火狐狸
火狐狸
  • UID18114
  • 注册日期2007-04-19
  • 最后登录2018-02-08
  • 发帖数115
  • 经验29枚
  • 威望0点
  • 贡献值26点
  • 好评度3点
  • 社区居民
阅读:6081回复:17

请教关于google代码站内搜索的问题

楼主#
更多 发布于:2007-11-12 17:28
代码如下:
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之类的语句也还是不行,研究了好久也搞不定,请问各位朋友有没有办法解决这个问题?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
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
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
bssln
火狐狸
火狐狸
  • UID18114
  • 注册日期2007-04-19
  • 最后登录2018-02-08
  • 发帖数115
  • 经验29枚
  • 威望0点
  • 贡献值26点
  • 好评度3点
  • 社区居民
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
回到原帖

太感谢这位兄弟了,请问百度的代码又应该如何写?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
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
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
bssln
火狐狸
火狐狸
  • UID18114
  • 注册日期2007-04-19
  • 最后登录2018-02-08
  • 发帖数115
  • 经验29枚
  • 威望0点
  • 贡献值26点
  • 好评度3点
  • 社区居民
4楼#
发布于:2007-11-12 17:28
请问google的那段代码是如何控制识别中文的?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
5楼#
发布于:2007-11-12 17:28
这就是我觉得奇怪的地方……

估计问题不在代码上,而是在搜索引擎自己,同样传一段编码过后的关键字,Google能解析,百度不能。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
bssln
火狐狸
火狐狸
  • UID18114
  • 注册日期2007-04-19
  • 最后登录2018-02-08
  • 发帖数115
  • 经验29枚
  • 威望0点
  • 贡献值26点
  • 好评度3点
  • 社区居民
6楼#
发布于:2007-11-12 17:28
今天发现一个问题,用代码搜索出来的结果无法打开google快照,但是在google中国网站上进行相同的搜索却可以打开快照,奇怪了
bssln
火狐狸
火狐狸
  • UID18114
  • 注册日期2007-04-19
  • 最后登录2018-02-08
  • 发帖数115
  • 经验29枚
  • 威望0点
  • 贡献值26点
  • 好评度3点
  • 社区居民
7楼#
发布于:2007-11-12 17:28
两者打开快照的时候用的服务器ip地址好像不一样,不知道怎样解决这个问题?
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
8楼#
发布于:2007-11-12 17:28
Baidu的站内搜索还是编码问题,应该要把汉字编码之后发出去,网上找到了将汉字编码的函数,颇长,把记事本、EmEditor、Source Insight都给干掉了,不好折腾,放弃了
网页快照还是中国长城的问题,还是用版主提供的google in english, preference,语言设置,中文这样的办法,可以使用google.com进行搜索
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
9楼#
发布于:2007-11-12 17:28
OpenSearchFox不好吗?
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
10楼#
发布于:2007-11-12 17:28
wushi777:用OpenSearchFox不好吗?回到原帖


楼主要的是site:语法搜索
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
11楼#
发布于:2007-11-12 17:28

楼主要的是site:语法搜索


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)
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
12楼#
发布于:2007-11-12 17:28
谢谢无事,我试了一下,
('+location.hostname+')

这里应该不需要那一对括号,然后就能搜索到编码好的中文字串

点击后会弹出个新窗口,但本窗口会刷新成一个错误提示:
[object XPCCrossOriginWrapper [object Window]]
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
wushi777
非常火狐
非常火狐
  • UID12365
  • 注册日期2006-04-17
  • 最后登录2011-04-13
  • 发帖数817
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度1点
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;
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
14楼#
发布于:2007-11-12 17:28
我是说,本地窗口不变,打开新窗口显示搜索结果呢?
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
上一页
游客

返回顶部