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

JS操作WordPress插件返回的HTMLCollection无法修改baseURI属性求助

问题解答

为什么修改baseURI不生效

baseURI 是 DOM Node 接口的只读原生属性,由浏览器根据当前文档的完整地址、页面内<base>标签配置自动计算生成,不支持开发者手动赋值、删除,因此你给test[0].baseURI赋值undefined、null或者空字符串的操作都会被浏览器直接忽略,自然不会生效。

适配需求的解决方案

你可以根据自己的实际业务目标选择对应方案:

  • 如果你是想调整该 div 内部所有链接的跳转基准:不需要修改元素的 baseURI,要么直接给内部所有 a 标签补全绝对路径 href(你代码中修改单条 a 标签 href 的逻辑本身是可用的),要么在页面 head 中插入符合你要求的<base>标签。
  • 如果你是想给该 div 附加自定义的基准地址供后续业务逻辑调用:不要占用原生属性,使用自定义属性即可:
// 赋值自定义属性
test[0].setAttribute('data-custom-base', null)
// 后续取值
const customBase = test[0].getAttribute('data-custom-base')

额外优化建议

你当前使用的document.getElementsByClassName返回的是动态HTMLCollection,在DOM变化时会自动更新取值,容易出现非预期的下标变化问题,推荐直接用querySelector获取单个目标元素,代码更稳妥:

const targetDiv = document.querySelector('.post-2968')
// 直接操作即可,不需要取下标[0]
targetDiv.childNodes[0].target = '_blank'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:18:01