2011-04-23 45 views
0

我想從激烈辯論的wordpress小部件的輸出,並修改返回的html輸出。雖然它是wordpress,但所有小部件正在做的是返回一個腳本標籤。從我看到的動態生成的HTML如何通過腳本標記工作,如如何在javascript中修改動態加載腳本的html輸出?

<script type='text/javascript' src='http://www.intensedebate.com/widgets/acctComment/12345/5'></script> 

他們沒什麼特別的。它是這樣稱呼自己的:

for(var i=0; i<scripts.length; i++) 
{ 
    if(scripts[i].src.indexOf('intensedebate.com/widgets/acctComment')>0) 
    { 
     if(scripts[i].defer) 
     { 
      if (window.addEventListener) 
      { 
       window.addEventListener("load", initIDWidget2, false); 
      } 
      else if (window.attachEvent) 
      { 
       window.attachEvent('onload', initIDWidget2); 
      } 
     } 
     else 
     { 
      document.write('<!--OMITTING HUGE HTML/JAVASCRIPT BLOCK-->'); 
      if (typeof id_recent_comments_loaded == 'function') 
       id_recent_comments_loaded(); 
     } 
     break; 
    } 
} 

而且還通過html插入一個變量。它確實

parentObj.insertBefore(theDiv,theObj); 

插入HTML(theDiv是最終的HTML,theObj是script標籤)。我可以完全理解它是如何工作的流程。什麼阻止了我,我可以如何改變它之後,它是否負載,或如何改變它的輸出顯示之前。我不確定這些變量是否可以解決,因爲它是onLoad。有什麼建議?我在StackOverflow上看不到這個確切的問題,所以我不得不問。

謝謝!

回答

1

通過監聽在父元素中創建的子元素,可以使用livequery(http://docs.jquery.com/Plugins/livequery)完成此操作。

<div id="foo"></div> 

$("#foo p").livequery(function() { 
    console.log("added something"); 
}); 

$(function() { 
    $("#foo").append($("<p>lol</p>")); 
}); 

fiddle

+0

我會考慮這一點。不知道如何匹配腳本標籤,但因爲它是一個小部件,它在腳本標籤周圍的容器上設置了一個ID。不知道當它更新時我是否有閃光燈。 – tomcat23 2011-04-23 08:47:15