MHTML文件中本地文件链接点击无反应的原因咨询
MHTML本地链接点击无反应但地址栏可访问的原因及解决办法
原因分析
1. 链接路径存在编码错误
你提供的链接代码里,href属性的值是file:///C:/dir1/file=1.mhtml,但你实际要访问的是file1.mhtml。这里的=是MHTML采用的Quoted-Printable编码残留错误——正常情况下,只有特殊字符才会被转义为=XX格式,而file1里的1不需要转义,生成MHTML时的编码逻辑错误导致多了一个=,让链接指向了不存在的文件,自然点击无反应。而你复制的是链接文本里的正确路径C:/dir1/file1.mhtml,所以地址栏能正常加载。
2. Chrome的本地文件安全限制
即使路径正确,Chrome默认会拦截本地HTML(包括MHTML文件)中的链接访问其他本地文件,这是出于安全考虑,防止恶意本地页面随意读取本地文件系统。但用户主动在地址栏输入路径属于信任操作,所以不会被拦截。
解决办法
修正链接路径:把
href里的file=1.mhtml改为file1.mhtml,修正后的代码应为:<a href=3D"file:///C:/dir1/file1.mhtml" target=3D"_self">link to C:/dir1/file1.mhtml</a>注意MHTML中
=需要转义为=3D,但路径本身不含=时无需额外处理。解除Chrome本地文件限制:关闭所有Chrome窗口后,用命令行启动Chrome并添加参数:
chrome.exe --allow-file-access-from-files这个参数会允许本地页面之间的文件链接访问,启动后再打开你的MHTML文件,点击链接就能正常跳转了。
内容的提问来源于stack exchange,提问作者lyrically wicked
相关产品推荐
相关产品推荐

