为什么window.location附加而不是替换ie中的URL

时间:2013-10-04 16:13:24

标签: javascript jquery .htaccess

我收到了错误的网址,但不是在firefox和chrome中。

基本上,我有一个名为text-search的文本域。我在htaccess中使用jQuery和rewriterule来内部重定向页面。我在localhost上,所有文件都在一个名为test的文件夹中。

在firefox和chrome中,如果你输入'hello'点击回车,'hi'点击回车,'goodbye'点击输入文字搜索框就可以得到正确的网址

本地主机/测试/检验/你好

本地主机/测试/检验/ HI

本地主机/测试/检验/再见

repectively。

在你得到

本地主机/测试/检验/你好

本地主机/测试/检验/检测/ HI

本地主机/测试/检验/检测/检测/再见

分别

这里的问题是'测试'是在前期。如何阻止这种情况发生在ie。我无法在网上找到这个问题的答案。

html和jquery代码

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>


        <base href="http://localhost/test/" />
        <script src="jQuery.js"></script>
        <script>
            $(document).ready(function(){
                $("#text-search").keyup(function(e){
                    if (e.keyCode == 13){
                        window.location.replace("testing/"+$('#text-search').val());
                    }
                })
            })
        </script>
    </head>

    <body>
        <input type='text' id='text-search'>
    </body>
</html>

的.htaccess

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^testing/(.+)$ /test/testing.php?string=$1 [L]

你能帮我解决这个问题。非常感谢

3 个答案:

答案 0 :(得分:10)

window.location不是一个字符串,我会非常小心地使用它 - 它实际上是一个Location对象。

也许这会对你有所帮助:

var href = window.location.href;
window.location = href.replace(/testing\/.*$/, "testing/"+$('#text-search').val());

你也可以这样做:

var href = "" + window.location;

强制进行字符串强制转换和值传递。

答案 1 :(得分:8)

如果您这样设置://

它会附加网址。为避免使用/而不是window.location.href = '//yourpage'

所以看起来像是:{{1}}

答案 2 :(得分:0)

考虑网址栏中的currenturl为www.theunusualcards.com/marketing

我们将考虑两种情况

第一个**window.location = 'dummy-string'**

**window.location = '/another-dummy-string'**

然后在第一种情况下,它将进一步附加到URL,而在第二种情况下,它将替换路径名(即 / marketing )。