Rails,如何创建“google like”(URL预览)link_to

时间:2011-10-27 12:55:53

标签: javascript ruby-on-rails coffeescript link-to

我想在Rails中创建link_to“google like”。

让我解释一下。

在简单的Google搜索页面上 http://www.google.com/search?hl=en&source=hp&biw=1280&bih=658&q=stackoverflow&oq=stackoverflow&aq=f&aqi=g10&aql=1&gs_sm=e&gs_upl=65l2231l0l2364l13l13l0l5l5l1l297l1698l1.2.5l8l0

对于简单的用户来说,一切看起来都很美好。

网址预览为stackoverflow.com

但是当我点击copy link location时,我会收到此地址http://www.google.com/url?sa=t&rct=j&q=stackoverflow&source=web&cd=1&ved=0CC8QFjAA&url=http%3A%2F%2Fstackoverflow.com%2F&ei=JVOpTra5M-Pi4QT1pPwk&usg=AFQjCNERidL9Hb6OvGW93_Y6MRj3aTdMVA&sig2=_ARyobDs5AzfZw4YwBNg1g

如何使用Rails中的JS或Coffescript控制URL预览以获取link_to?有人能解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

原始链接引用是“漂亮版本”,但是mousedown事件会将URL更改为使用JavaScript通过Google网站重定向。

原始HTML:

<a class="l" onmousedown="return rwt(this,'','','','1','AFQjCNERidL9Hb6OvGW93_Y6MRj3aTdMVA','','0CDAQFjAA')" href="http://stackoverflow.com/">

堆栈溢出

在mousedown事件之后(甚至是右键点击):

<a class="l" onmousedown="return rwt(this,'','','','1','AFQjCNERidL9Hb6OvGW93_Y6MRj3aTdMVA','','0CDAQFjAA')" href="http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDAQFjAA&url=http%3A%2F%2Fstackoverflow.com%2F&ei=aVepTtjwJ4nlsQKTvLHbBQ&usg=AFQjCNERidL9Hb6OvGW93_Y6MRj3aTdMVA">

堆栈溢出

基于ERB的模板的未经测试的JQuery实现:

$('.l').mousedown(function() {
  $(this).attr("href","<%= url_for(:controller => :redirect, :action => :index) -%>/"+$(this).attr("href"));
});

答案 1 :(得分:0)

原始解决方案,但正确的方向?

<%= link_to "Test", "Pretty.url", :onmousedown => "window.location.href = 'UGLY.URL'; return false;" %>