当前位置: 首页 > 知识库问答 >
问题:

window.location未定义

那宏大
2023-03-14

当我加载react-redux应用程序的主页时,我得到了一个错误

使用{“location”:“/”,“currency”:“usd”}预渲染应用程序时遇到错误“TypeError:无法读取未定义的属性”

const UrlParser = {

getQueryVariable: (variable) => {
  let query = window.location.search.substring(1);
  let vars = query.split('&');
  for (let i = 0; i < vars.length; i++) {
    let pair = vars[i].split('=');
    if (decodeURIComponent(pair[0]) === variable) {
      return decodeURIComponent(pair[1]);
      }
    }
  }
}

export default UrlParser;

控制台上的Window.Location提供

    Location {href: "http://localhost:5000/", ancestorOrigins: DOMStringList, origin: "http://localhost:5000", replace: function,

分配:函数…}祖先起源:domStringListAssign:function()哈希:“host:”localhost:5000“主机名:”localhost:5000“href:”http://localhost:5000“起源:”http://localhost:5000“路径名:”/“端口:”5000“协议:”http:“reload:function reload()替换:function()搜索:”toString:function toString()valueOf:function valueOf()符号(Symbol.toprimitive):未定义

共有1个答案

胥诚
2023-03-14

经过大量讨论,很难理解为什么赋值window.location.search.substring(1)会引发错误。避免此问题的一种方法是使用try catch子句:

getQueryVariable: (variable) => {

  let query;
  try {
    query = window.location.search.substring(1);
  } catch(e) {
    // window.location.search.substring(1) throws an error, set query
    // to fallback value ''
    console.log(e);
    query = '';
  }

  let vars = query.split('&');
  for (let i = 0; i < vars.length; i++) {
    let pair = vars[i].split('=');
    if (decodeURIComponent(pair[0]) === variable) {
      return decodeURIComponent(pair[1]);
    }
  }
}
 类似资料:
  • 问题内容: 这两行之间有区别吗? 问题答案: 您可以(或应该能够)单击“上一步”并返回到当前页面,从而在历史记录中添加一项。 替换当前的历史记录项,因此您将无法返回到它。 见: :通过提供的URL加载文档。 :用提供的URL上的文档替换当前文档。与该方法的不同之 处在于,使用 当前页面后将不会保存在会话历史记录中,这意味着用户将无法使用“后退”按钮导航到该页面。 哦,一般来说: is favour

  • 本文向大家介绍window.location和document.location有什么区别?,包括了window.location和document.location有什么区别?的使用技巧和注意事项,需要的朋友参考一下 根据W3C,它们是相同的。 但是您应该始终喜欢使用window.location而不是document.location。

  • 我有执行的Ajax代码,代码如下 由于某种原因,我不能使用 。 Html是 现在,在表单提交时,如果数据为2,则用户应该返回所需页面(自由列表),但它可以.php

  • 问题内容: 注意:根据 ECMAScript5.1,第15.1.1.3节,window.undefined是只读的。 现代浏览器正确地实现了这一点。 例如:Safari 5.1,Firefox 7,Chrome 20等。 Undefined仍可在以下位置更改:Chrome 14,… 原来,问题的原因是 如果“对象”中没有属性“ x”,则返回false。 我通过在两个Facebook函数中用规则相等

  • 本文向大家介绍window.location 对象所包含的属性,包括了window.location 对象所包含的属性的使用技巧和注意事项,需要的朋友参考一下 hash//从井号 (#) 开始的 URL(锚) host//主机名和当前 URL 的端口号 hostname//当前 URL 的主机名 href//完整的 URL pathname//当前 URL 的路径部分 port//当前 URL 的

  • 本文向大家介绍javascript中window.location的用途是什么?,包括了javascript中window.location的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 Window.location只读属性返回一个Location对象,其中包含有关文档当前位置的信息。 Location接口表示链接到的对象的位置(URL)。属性在位置对象上可用- Location.hre