SharePoint页面WebPart中HTML按钮用_self参数同标签页打开URL失效问题
问题原因
- 你使用的
<button>未显式指定type="button",SharePoint页面默认全局包裹在<form>标签下,未指定type的button会被默认识别为提交按钮,点击时会先触发表单提交行为刷新当前页,跳转逻辑被刷新操作覆盖,因此无法正常跳转。 - 内容编辑器WebPart的HTML默认会被嵌入到SharePoint页面的子上下文(部分版本会用iframe隔离WebPart内容),直接调用
window.open作用的是WebPart自身的上下文而非顶层页面,_self参数只会尝试在WebPart容器内跳转,无法触发顶层页面地址变更。
修复方案
你可以直接修改代码为如下版本即可解决问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <body> <button type="button" onclick="top.location.href='https://bbc.co.uk'"> Link to BBC</button> </body>
修改点说明:
- 给button添加
type="button",避免触发表单提交的默认行为 - 用
top.location.href直接指定顶层页面跳转,替代window.open方案,适配SharePoint的页面嵌套结构,性能更稳定也不会出现上下文不匹配的问题。
内容的提问来源于stack exchange,提问作者Greesh Dhir
相关产品推荐
相关产品推荐

