window.location导致连续循环使用

时间:2017-08-11 18:47:11

标签: javascript window.location

我正在尝试附加到URL,这是一个基于特定条件的查询字符串。我遇到的问题是,以下代码导致页面连续循环:

function taoExtendedIdleTime() {
  if (trackingJson.loginType === 'explicit') {
    var myURL = window.location;
    window.location = myURL + "&debugMode=true&setIdleTime=60000";
  } 
} 

taoExtendedIdleTime();

为了解决这个问题,我尝试了以下方法,检查此查询是否已存在。如果没有,请添加它:

function taoExtendedIdleTime() {
  if (trackingJson.loginType === 'explicit') {
    var myURL = window.location;
      if (myURL.indexOf("&debugMode=true&setIdleTime=60000") == -1) {
        window.location = myURL + "&debugMode=true&setIdleTime=60000";
      }
  } 
} 

taoExtendedIdleTime();

在我的开发环境中,这根本不会被执行。当我将它添加到控制台时,我收到以下错误:未捕获TypeError:myURL.indexOf不是函数,并引用此代码段的第四行:if(myURL.indexOf ...)。

非常感谢您提供的任何帮助/指导!!

2 个答案:

答案 0 :(得分:0)

根据documentationwindow.locationLocation对象(不是String),因此它没有indexOf方法。您可能对其search属性感兴趣。

或者如果你想要更干净,URL.searchParams可能会有帮助。

答案 1 :(得分:0)

因为您正在尝试获取对象。 window.location将返回Location对象。你要找的是window.location.href,它会返回当前位置的网址。

function taoExtendedIdleTime() {
   if (trackingJson.loginType === 'explicit') {
       var myURL = window.location.href;       
       window.location.href = myURL + "&debugMode=true&setIdleTime=60000";
} }
taoExtendedIdleTime();