为什么 window.location 追加而不是替换 IE 中的 URL
why window.location appending instead of replacing the URL in ie
我在IE中得到错误的URL,但在Firefox和chrome中没有。
基本上,我有一个名为文本搜索的文本字段。我正在使用jQuery和rewriterule在htaccess内部重定向页面。我在本地主机上,所有文件都在一个名为test的文件夹中。
在Firefox和chrome中,如果您在文本搜索框中输入"hello"按回车键,"hi"按回车键和"再见"按回车键,您将获得正确的URL,如下所示
本地主机/测试/测试/你好
和
本地主机/测试/测试/嗨
和
本地主机/测试/测试/再见
重复。
在即你得到
本地主机/测试/测试/你好
和
本地主机/测试/测试/测试/嗨
和
本地主机/测试/测试/测试/测试/再见
分别
这里的问题是"测试"是预先置的。如何阻止这种情况在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]
你能帮我这个吗?非常感谢
如果这样设置:window.location.href = '/yourpage'
它将附加网址。为避免这种情况,请使用//
而不是/
所以它看起来像:window.location.href = '//yourpage'
window.location
不是字符串,我会非常小心地以这种方式使用它 - 它实际上是一个Location
对象。
也许这会帮助你:
var href = window.location.href;
window.location = href.replace(/testing'/.*$/, "testing/"+$('#text-search').val());
您还可以执行以下操作:
var href = "" + window.location;
以强制字符串强制转换和按值传递。
考虑到网址栏中的当前网址是 www.theunusualcards.com/marketing。
我们将考虑两种情况
第一**window.location = 'dummy-string'**
第二**window.location = '/another-dummy-string'**
然后在第一种情况下,它将进一步附加到 URL,而在第二种情况下,它将替换 URL 中的路径名(即 /marketing(。
- 追加子数据 URI,替换 IE 中的其他对象
- 为什么 window.location 追加而不是替换 IE 中的 URL
- 与FV或GoogleChrome相比,IE中DOM元素的替换速度较慢
- IE中的第n个子选择器替换
- 用正则表达式替换Javascript在IE 11中不起作用
- IE,Edge将存储文本替换为'null'
- Javascript替换不仅适用于IE
- 替换ie浏览器中的document.documentElement.innerHTML
- regex替换在IE中不工作
- IE浏览器中如何使用按钮替换
- JavaScript字符串替换IE问题
- jquery替换IE中不工作的空格
- 是否有一种快速的方法来替换IE中的大型字体?
- 将setAttribute替换为IE兼容的脚本
- jQuery IE 9在替换"tbody"时崩溃;值,单击其中的元素后
- startsWith方法在IE中不受支持,是否对此进行任何替换
- 用Javascript Regex替换IE问题
- 通过AJAX替换整个页面只会导致IE中的Permission Denied错误
- JQuery替换了在IE 8-10下不工作的链接
- event.returnValue = false 以替换 preventdefault 在 IE 11 中不起作用