如何使用javascript在同一个窗口中打开URL?

时间:2011-12-12 16:45:07

标签: javascript ruby-on-rails

<form id="search" action="">
            <input id="findroom" type="text" class="defaultText" title="Room Name">
            <input id="find" type="submit" value="Find">
        </form>
        <script>

            $(document).ready(function(){
              $('#search').submit(function() {
                var r = "/rooms/"+$('#findroom').val();
                open(r);
              });
            });
        </script>

上面的代码有问题。我正在尝试生成一个用于Ruby on Rails应用程序的restful URL。我可以从表单中生成我需要的URL作为var'r'。当我使用上面的open()时,链接打开正常,但在新窗口中。我需要它在同一个窗口打开。试过了:

open.(r,'_self');

不起作用

没有运气:

location.replace
location.href =

有人有任何想法吗?

由于

百里

5 个答案:

答案 0 :(得分:5)

就像

一样简单
window.location = r;

答案 1 :(得分:2)

要打开新的弹出窗口,请使用

window.open(r); 

如果要重定向当前页面,请使用

window.location = r;

答案 2 :(得分:0)

正确的语法是

window.open(URL,name,specs,replace)

你只需要在名字中给自己

Please read more

答案 3 :(得分:0)

window.open创建一个新的辅助浏览器窗口并加载引用的资源,而windo.location允许更改当前窗口的URL。所以你想要的是:

window.location = r;

答案 4 :(得分:0)

谢谢大家的帮助。你们都在赚钱,的答案是

e.preventDefault(); 

与表单提交和覆盖window.location命令有关。一旦阻止它的默认行为就可以了。这是完整的代码:

<section id="roomsearch">
        <form id="search" action="">
            <input id="findroom" type="text" class="defaultText" title="Room Name">
            <input id="find" type="submit" value="Find">
        </form>
        <script>

            $(document).ready(function(){
              $('#search').submit(function(e) {
                var r = "/rooms/"+$('#findroom').val();
                window.location = r;
                e.preventDefault();         
              });
            });
        </script>


    </section>

感谢您的时间和帮助。

百里