2017-01-14 68 views
0

這是我的一塊虛擬域修改mithrill部件載荷

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做什麼是爲該html中的每個鏈接添加target _blank。我曾嘗試在trust內添加config,但該函數未執行。任何想法我怎麼能做到這一點。

這裏是我的JS把目標_blank添加到HTML

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

我認爲'config'功能他應該提供'm('.fontsize-smaller.fontcolor-secondary.u-margintop-10')' – Vier

回答

2

你需要把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]}`) 
    ) 
    ) 
) 
) 
+2

'a:not([href = __ blank])'選項。有()正在等待編輯@Raaz試圖解決它,但我不認爲修復是正確的(不應該作爲編輯 - 無論如何 - 應該是評論)。最有可能應該像'target = ...'一樣,'setAttribute'也一樣。 –

+0

@Alexei斑點!感謝您指出這一點。 – Barney