SharePoint Online列格式化:修复空值时必应地图链接404问题
你的问题核心是:当PortOfOrigin列值为空时,原代码仍会渲染<a>标签(即使href为空),点击后会触发无效跳转。要解决这个问题,只需要通过条件判断控制链接元素的显示状态即可。
修改思路
在原代码的<a>标签样式中添加显示/隐藏的条件判断:当列值为空时,将链接元素设置为display: none,完全隐藏;有有效值时正常显示。
修改后的完整代码
{ "$schema": "http://columnformatting.sharepointpnp.com/columnFormattingSchema.json", "elmType": "div", "style": { "border": "2px solid #666666", "width": "128px", "height": "64px" }, "children": [ { "elmType": "a", "attributes": { "href": "=if( @currentField != '', 'https://www.bing.com/maps?where='+@currentField,'')", "target": "_blank" }, "style": { "height": "100%", "display": "=if(@currentField == '', 'none', 'block')" }, "children": [ { "elmType": "img", "attributes": { "src": "=if( @currentField != '', 'https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/'+@currentField+'?mapSize=128,64'+'&key=XXXX' , '')" } } ] } ] }
关键修改点
- 在
<a>标签的style中新增了"display": "=if(@currentField == '', 'none', 'block')":- 当
@currentField为空时,链接元素会被隐藏,不会生成可点击的区域 - 当列有有效值时,链接正常显示,地图图片和跳转功能不受影响
- 当
如果需要连外层的边框也在空值时隐藏,可以给外层<div>的style也添加同样的display判断:
"style": { "border": "2px solid #666666", "width": "128px", "height": "64px", "display": "=if(@currentField == '', 'none', 'block')" }
内容的提问来源于stack exchange,提问作者Mr. Dr. Sushi
相关产品推荐
相关产品推荐

