从外部脚本生成的元素中删除DOM元素

时间:2015-05-23 04:05:20

标签: javascript jquery ajax

在页面中,我有由外部脚本生成的第三方广告内容。加载此内容需要一些时间。我想从广告内容中删除换行符 - 为此,必须等到外部脚本加载并且该脚本中调用的所有函数都已停止运行。我正在修改以下想法,但我想它只会等到加载外部脚本:

function getWeeklyDates2($from, $to, $includeFrom = false, $includeTo = true) {
    $from = strtotime($from);
    $to = strtotime($to);

    if($includeFrom===false)
        $from = strtotime("+7 day", $from);

    $dates = array();

    $current = $from;
    while($includeTo ? $current <= $to : $current < $to) {
        $dates[] = $current;
        $current = strtotime("+7 day", $current);
    }
    return $dates;
}

$dates2 = getWeeklyDates2('2015-04-01', '2015-04-29', false, true);
foreach($dates2 as $date)
    echo date("Y-m-d", $date) ."<br />";

在调用.remove()函数之前,等待外部脚本执行所有DOM操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:5)

一种方法似乎是监听从新创建和插入的onreadystatechange元素中触发的load<script>事件,其中运行了JavaScript。

这适用于链接(简单)演示,但我无法证明其对大型项目的可靠性:

// listening for the onreadystatechange and/or load
// events fired from the newly-added "script" elements:
$('script').on('onreadystatechange load', function (e) {
    // performs the following simple/contrived functionality:
    $('body').find('br').remove();
});

JS Fiddle demo

参考文献: