2016-12-02 13 views
3

HTMLは、このコードを使用してロード完了した後、私は唯一の値を取得することができる午前:Blogger - JavaScriptで表示カウンタの値を取得しますか?

var array = $('#Stats1_totalCount strong').map(function(){ 
 
    return $(this).text() 
 
}).get(); 
 
var vcount = ''; 
 
for (i = 0; i < array.length; i++) { 
 
    vcount += array[i]; 
 
} 
 
console.log(vcount);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="counter-wrapper graph-counter-wrapper" id="Stats1_totalCount"> 
 
    <span class="digit stage-0"><strong>1</strong></span> 
 
    <span class="digit stage-0"><strong>2</strong></span> 
 
    <span class="digit stage-0"><strong>3</strong></span> 
 
    <span class="digit stage-0"><strong>4</strong></span> 
 
    <span class="digit stage-0"><strong>5</strong></span> 
 
</span>

をしかしブロガーがinject counterにAJAXを使用しています。

Counter and image will be injected later via AJAX call. 

私が使用してみました.ajaxStopajaxCompleteのいずれも機能しません。
JSでビューカウンタの値を取得するにはどうすればよいですか?

+0

カウンタAPIは、あなたがフックできるコールバックを提供していますない限り、あなたはかなり多くの 'のsetTimeout()' –

+0

@RoryMcCrossanを使用して立ち往生している、それは作業を行いますが、それはちょっと愚かです。 'setTimeout'で実行するために必要なコードが遅れています。それは良くありません。 – Louis55

+0

MutationObserverを使用できますが、これは従来のブラウザではサポートされていません。詳細については、MDNを参照してください –

答えて

0

MutationObserverを使って@RoryMcCrossanの提案をいただきありがとうございます。JavaScriptでビューカウンタの値を取得できるようになりました。

(function startObservation() { 
 
    var 
 
    /* 1) Create a MutationObserver object*/ 
 
    observer = new MutationObserver(
 
     function(mutations) {  
 
     mutationObserverCallback(mutations); 
 
    }), 
 
    /* 2) Create a config object */ 
 
    config = {childList: true}; 
 
    
 
    /* 3) Glue'em all */ 
 
    observer.observe(Stats1_totalCount, config); 
 
})(); 
 
function mutationObserverCallback(mutations) { 
 
    var mutationRecord = mutations[0]; 
 
    if (mutationRecord.addedNodes[0] !== undefined) { 
 

 
    var array = $('#Stats1_totalCount strong').map(function(){ 
 
    return $(this).text() 
 
    }).get(); 
 
    var vcount = ''; 
 
    for (i = 0; i < array.length; i++) { 
 
    vcount += array[i]; 
 
    } 
 
    console.log(vcount); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="counter-wrapper graph-counter-wrapper" id="Stats1_totalCount"> 
 
    <span class="digit stage-0"><strong>1</strong></span> 
 
    <span class="digit stage-0"><strong>2</strong></span> 
 
    <span class="digit stage-0"><strong>3</strong></span> 
 
    <span class="digit stage-0"><strong>4</strong></span> 
 
    <span class="digit stage-0"><strong>5</strong></span> 
 
</span>

関連する問題