簡體   English   中英

如何在javascript中修改動態加載腳本的html輸出?

[英]How to modify the html output of a dynamically loaded script in javascript?

我正在嘗試從wordpress小部件獲取“激烈辯論”的輸出,並修改返回的html輸出。 雖然是wordpress,但所有小部件正在做的工作就是返回一個腳本標簽。 從我所看到的有關動態生成的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是腳本標記。)我完全可以理解它的工作流程。 讓我感到困擾的是如何在加載后更改它,或者如何在顯示之前更改輸出。 我不確定變量是否可以訪問,因為它確實是onLoad。 有什么建議嗎? 我在StackOverflow上沒有看到這個確切的問題,所以我不得不問。

謝謝!

可以使用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>"));
});

小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM