如何在 ROR 中设置窗口的名称?

How do I set the name of a window in ROR?

提问人:Brent 提问时间:8/31/2008 最后编辑:John TopleyBrent 更新时间:6/5/2015 访问量:341

问:

如何在 ROR 中“命名”浏览器窗口,以便以后可以从另一个(弹出)窗口(使用 target=“name” html 参数)打开其中的页面

JavaScript HTML Ruby-on-Rails 红宝石

评论


答:

5赞 John Topley 8/31/2008 #1

为此,您必须使用 JavaScript:

<script type="text/javascript">
  window.name = "MyWindow";
</script>

当然,你可以很容易地将其打包成一个 Rails 辅助方法。例如,在添加新方法中:app/helpers/application_helper.rb

def window_name(name)
  content_for(:window_name) do
    "<script type=\"text/javascript\">window.name = \"#{name}\";</script>"
  end
end

接下来,在布局文件中,在 HTML 元素中的某个位置添加以下行:<head>

<%= yield :window_name %>

最后,在视图模板中,只需添加一行(可以在您想要的任何位置)即可输出正确的 JavaScript:

<% window_name 'MyWindow' %>
0赞 John S. 6/5/2015 #2

您可以尝试以下操作:

var x=window.open("", "myWindow");
var y="<head><title>my window</title></head><body>my window</body>";
x.document.write(y);