在 mithrill 组件加载后修改 html

modify html after mithrill component loads

这是我的 vdom 的一部分

m('.w-row', _.map(ctrl.posts(), (post) => {
                        return m('.w-col.w-col-4.col-blog-post',
                            [
                                m(`a.link-hidden.fontweight-semibold.fontsize-base.u-marginbottom-10[href="${post[2][1]}"][target=\'__blank\']`, post[0][1]),
                                m('.fontsize-smaller.fontcolor-secondary.u-margintop-10', m.trust(`${post[1][1]}`))
                            ]
                        );
                    })),

m.trust('${post[1][1]}')部分我得到了html的一部分。我想用 html 为 html 中的每个 link 添加 target _blank。我尝试在 trust 中添加 config 但该函数未执行。知道我该怎么做。

这是我将目标 _blank 添加到 html

的 js
var div = document.getElementsByClassName('medium-feed-item');
div[0].getElementsByTagName('a');
div[0].getElementsByTagName('a')[0].setAttribute('target', '_blank');

您需要将 config 调用放在 m.trust 上方的节点中:

m('.w-row', _.map(ctrl.posts(), post =>
  m('.w-col.w-col-4.col-blog-post',
    m(`a.link-hidden.fontweight-semibold.fontsize-base.u-marginbottom-10[href="${post[2][1]}"][target=\'__blank\']`, post[0][1]),
      m('.fontsize-smaller.fontcolor-secondary.u-margintop-10', {
        config(el){
          _.map(el.querySelectorAll('a:not([target=__blank])'), el =>
            el.setAttribute('target', '__blank')
          )
        }
      },
        m.trust(`${post[1][1]}`)
      )
    )
  )
)