JavaScript 'a'标签重定向异常原因排查求助
问题原因分析与解决方法
从你给出的错误链接能一眼看出核心问题:你的URL被额外的中文右双引号(URL编码为%E2%80%9D)包裹了,这直接导致浏览器误判了链接类型。
浏览器识别HTTP/HTTPS远程链接的前提是字符串以http://或https://开头,且没有非法的包裹字符。当你的链接变成“https://www.ft.com/...”(注意是中文排版引号)时,浏览器无法识别这是合法的远程URL,会默认把它当作本地文件路径,再结合当前Bokeh页面的本地文件根路径(file:///home/vincent/wintergreen/bokehIB/),就拼接成了你看到的错误跳转地址。
结合Bokeh开发的场景,可能触发这个问题的情况有两种:
- 复制URL时不小心带入了中文引号:比如从文档、聊天框等带排版格式的地方复制链接时,顺带把中文引号也粘进了代码里,比如:
# 错误写法:URL被中文引号包裹 wrong_url = "“https://www.ft.com/content/336e7f52-4189-11e8-93cf-67ac3a6482fd”" - 生成HTML链接时错误嵌套引号:比如在
Div组件的文本中,给URL额外套了一层引号,导致HTML解析时出现异常:# 错误写法:URL本身带英文引号,导致href属性值异常 url = '"https://www.ft.com/content/336e7f52-4189-11e8-93cf-67ac3a6482fd"' div = Div(text=f'<a href={url}>FT Article</a>')
快速解决步骤
- 清理URL字符串:确保代码中的URL是纯字符串,不带任何额外引号(中文/英文都不行):
correct_url = "https://www.ft.com/content/336e7f52-4189-11e8-93cf-67ac3a6482fd" - 正确生成跳转组件:
- 如果用
Div渲染HTML链接,确保href属性用英文引号正确包裹URL:from bokeh.models import Div div = Div(text=f'<a href="{correct_url}" target="_blank">查看FT文章</a>') - 如果用Bokeh的
Button组件实现跳转,直接给url属性赋值纯URL即可(不需要加引号):from bokeh.models import Button link_btn = Button(label="打开文章", button_type="primary") link_btn.url = correct_url
- 如果用
这样处理后,浏览器就能正确识别这是一个远程HTTPS链接,不会再跳转到本地file://路径了。
内容的提问来源于stack exchange,提问作者jim jarnac
相关产品推荐
相关产品推荐

