我有一个Rails应用程序,它具有适用于iOS用户的移动视图。
所有链接似乎都在工作,除了那些帖子绑定到rails:delete方法。一个例子link_to:
<%= link_to list_task_path(t.list, t), :method => :delete do %>
<%= image_tag "white_minus.png", :id => "complete_task", :class => "#{important_class?(t)} icon", :title => "Complete Task", :alt => "Complete Task" %>
<% end %>
在移动版Safari上按下此链接时,会返回以下错误:无法找到操作“show”...
我尝试将链接转换为ajax链接,看看问题是否正确,没有雪茄:
$(function() {
$("#complete_task a").click(function() {
$.post(this.href, { _method: 'delete' }, null, "script");
return false;
});
});
我认为这个问题与我正在使用的javascript有关,尽管不能完全理解,如果网站已添加到用户主屏幕,则阻止链接在移动Safari中打开。这是我的另一个问题的复制意大利面:
// open links in app and not safari
var iWebkit;if(!iWebkit){iWebkit=window.onload=function(){function fullscreen(){var a=document.getElementsByTagName("a");for(var i=0;i<a.length;i++){if(a[i].className.match("noeffect")){}else{a[i].onclick=function(){window.location=this.getAttribute("href");return false}}}}function hideURLbar(){window.scrollTo(0,0.9)}iWebkit.init=function(){fullscreen();hideURLbar()};iWebkit.init()}}
删除此javascript允许我执行删除操作,但所有其他链接都在外部打开,就像它们是_blank目标一样。
我想知道是否有其他人遇到类似情况,并且能够纠正在移动游猎中运行的Rails 3上的破坏链接。
答案 0 :(得分:1)
如果我正确阅读此脚本,则应将类noeffect
添加到链接中。这可以防止脚本的默认行为,即将window.location设置为锚点的href