You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测URL中#mystring是否存在并修复split未定义错误?

修复方案及代码优化

错误原因

你遇到的Uncaught TypeError是因为当URL里没有#时,link.split("#")得到的数组只有1个元素,data[1]就是undefined,自然没法调用split方法。

修复后的代码

function my_function() {
    // 直接获取URL的哈希部分,自带#前缀
    const hash = window.location.hash;
    
    // 先判断哈希是否存在,避免后续报错
    if (hash) {
        // 去掉开头的#,得到哈希内容
        const hashContent = hash.slice(1);
        // 提取第一个&之前的部分,没有&就返回整个内容
        const widget_type = hashContent.split("&")[0];
        
        if (widget_type === 'mystring') {
            // 这里直接用已经处理好的hashContent就行,不用再调用substr(1)
            console.log(hashContent);
        }
    }
}
my_function();

关键优化点

  • 直接用window.location.hash:这是浏览器提供的专门获取URL哈希部分的属性,比把整个location转成字符串再拆分更可靠,也更简洁。
  • 先判断哈希存在性:在处理哈希内容前先检查hash是否为空,从根源避免undefined调用方法的错误。
  • 简化哈希内容处理:用slice(1)去掉开头的#,比substr(1)语义更清晰;split("&")[0]在没有&的情况下会返回整个哈希内容,兼容两种场景。

内容的提问来源于stack exchange,提问作者deverasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:54:24