TypeError: "undefined" is not an object (evaluating "window.location.href")
这个错误通常表示在尝试访问 window.location.href
属性时,window
对象是 undefined
。这种情况可能发生在非浏览器环境中,例如 Node.js 环境,或者在某些特定的浏览器环境中。
window.location.href
是一个用于获取或设置当前页面 URL 的属性。它属于 window
对象,而 window
对象是浏览器环境中的全局对象。
window
对象不存在。window
对象可用之前执行。window
对象。确保代码在浏览器环境中运行。如果需要在 Node.js 中处理 URL,可以使用 url
模块。
// Node.js 中获取当前 URL
const url = require('url');
const currentUrl = url.format({
protocol: 'http',
hostname: 'example.com',
pathname: '/path',
query: { foo: 'bar' }
});
console.log(currentUrl);
window
对象存在在访问 window.location.href
之前,检查 window
对象是否存在。
if (typeof window !== 'undefined') {
console.log(window.location.href);
} else {
console.log('Not running in a browser environment');
}
如果你在使用模块化开发,可以条件性地导入浏览器特定的代码。
// browser.js
export const getLocationHref = () => window.location.href;
// node.js
export const getLocationHref = () => {
throw new Error('Not supported in this environment');
};
// main.js
import { getLocationHref } from './path-to-module';
try {
console.log(getLocationHref());
} catch (e) {
console.error(e.message);
}
window
对象。通过上述方法,可以有效避免 TypeError: "undefined" is not an object (evaluating "window.location.href")
错误,并确保代码在不同环境中的兼容性和稳定性。
领取专属 10元无门槛券
手把手带您无忧上云