我试图替换windows.location ex:
我的Windows位置是http://我需要在https中替换,此代码返回“未定义”值,为什么?
<script>
function myFunction()
{
var windost = window.location;
var opens = windost.replace("http","https");
alert(opens);
}
</script>
答案 0 :(得分:3)
location
不是字符串,因此其replace
方法的行为方式与字符串上可用的replace
方法不同。你想要location.href
,这是一个字符串。
var windost = location.href;
答案 1 :(得分:1)
试试这会解决你的问题
<script>
function myFunction()
{
var windost = window.location.toString();
var opens = windost.replace("http", "https");
alert(opens);
}
</script>
答案 2 :(得分:0)
尝试这样的事情
function myFunction()
{
var windost = window.location.href;
var opens = windost.replace("http","https");
alert(opens);
}
答案 3 :(得分:0)
使用toString()
功能(或者更好地使用Quentin建议的href
),并将其与if
结合使用以避免更换错误。
<script>
function myFunction()
{
if (window.location.protocol == "http:") {
var opens = window.location.href.replace("http://", "https://")
alert(opens);
}
}
myFunction()
</script>
<强>详细信息:强> 您的旧替换,即使已修复也会造成一些不良替换,例如:
Here就是一个例子。