indexOf故障排除

时间:2014-09-16 09:10:50

标签: javascript indexof

为什么这部分会返回结果:

var s = "foo";
alert(s.indexOf("oo") > -1);

但这部分不是:

var currentLocation = window.location;
alert(currentLocation.indexOf(".") > -1);

2 个答案:

答案 0 :(得分:2)

因为window.locaton不是字符串。它是several properties的对象。

您可以检查window.location.href以获取整个网址(保证包含点),或只检查window.location.pathname的路径(位于域之后)。

答案 1 :(得分:0)

window.location.toString()

var currentLocation = window.location.toString();
alert(currentLocation.indexOf("."));

<强> DEMO

查看所有属性

showLoc();
function showLoc() {
  var oLocation = window.location, aLog = ["Property (Typeof): Value", "window.location (" + (typeof oLocation) + "): " + oLocation ];
  for (var sProp in oLocation){
    aLog.push(sProp + " (" + (typeof oLocation[sProp]) + "): " +  (oLocation[sProp] || "n/a"));
  }
  alert(aLog.join("\n"));
}

<强> DEMO