简体   繁体   English

将对象添加到DOM后如何触发函数

[英]How to fire a function when an object is added to DOM

I want to add Website talking heads video to my website. 我想将网站演讲头像视频添加到我的网站。 They provided a script file that I have to link in my page. 他们提供了一个脚本文件,我必须将其链接到页面中。

// Copyright 2012 Website Talking Heads
// JavaScript Document
if (typeof wthvideo == "undefined") {
    wthvideo = new Object();
}
wthvideo.params = {
    width:200,
    height:384,
    position:"fixed",
    doctype:"strict",
    left:"50%",
    right:"auto",
    top:"140px",
    bottom:"auto",
    centeroffset:"-660px",
    color:0xCCCCCC,
    volume:70,
    autostart:"yes",
    fadein:0,
    fadeout:2,
    flip:"no",
    delay:0,
    delayclose:0,
    buffertime:3,
    controlbar:"yes",
    exitbtn:"no",
    playbtn:"PlayVideo.png",
    playposition:"center",
    playtop:"bottom",
    exitoncomplete:"yes",
    oncepersession:"no",
    vidlink:"no",
    openin:"_blank",
    path:"wthvideo",
    actorpic:"angiewasabiloco.png",
    flv:"angiewasabiloco.flv",
    h264:"angiewasabiloco.mp4",
    iactorpic:"angiewasabiloco.jpg",
    iwidth:200,
    iheight:384};

var topPx = parseFloat(wthvideo.params.top);
var bottomPx = parseFloat(wthvideo.params.bottom);

wthvideo.hideDiv = function(){
    document.getElementById('wthvideo').style.visibility = 'hidden';
}
function onlyOnce() {
if (document.cookie.indexOf("hasSeen=true") == -1) {
var later = new Date();
later.setFullYear(later.getFullYear()+10);
document.cookie = 'hasSeen=true;path=/;';
wthvideo.drawVideo();
}
}
function onlyOnce2() {
if (document.cookie.indexOf("hasSeen=true") == -1) {
var later = new Date();
later.setFullYear(later.getFullYear()+10);
document.cookie = 'hasSeen=true;path=/;';
wthvideo.drawVideo();
}
}

wthvideo.drawVideo= function(){
    var markUp = '';
    var isiPad = navigator.userAgent.match(/iPad/i) != null;
    if(isiPad || navigator.platform == 'iPad' || navigator.platform == 'iPhone'|| navigator.platform == 'iPod' ) {
        markUp += '<style type="text/css">';
        markUp += '#wthvideo {position:'+wthvideo.params.position+';width:'+wthvideo.params.iwidth+'px;height:'+wthvideo.params.iheight+'px;margin-left:-100px;left:'+wthvideo.params.left+';right:'+wthvideo.params.right+';top:40px;bottom:'+wthvideo.params.bottom+';z-index:99999;}';
        markUp += '</style>';
        markUp += '<div id="wthvideo">';
        markUp += '<video poster="'+wthvideo.params.path+'/'+wthvideo.params.iactorpic+'" controls="controls" width="'+wthvideo.params.iwidth+'" height="'+wthvideo.params.iheight+'">';
        markUp += '<source src="'+wthvideo.params.path+'/'+wthvideo.params.h264+'" type="video/mp4" />';
        markUp += '</video>';
        markUp += '</div>';
}
else {
    markUp += '<style type="text/css">';
    markUp += '#wthvideo {position:'+wthvideo.params.position+';width:'+wthvideo.params.width+'px;height:'+wthvideo.params.height+'px;margin-left:'+wthvideo.params.centeroffset+';left:'+wthvideo.params.left+';right:'+wthvideo.params.right+';top:'+wthvideo.params.top+';bottom:'+wthvideo.params.bottom+';z-index:99999;}';
    markUp += '</style>';
    markUp += '<div id="wthvideo">';
    markUp += '  <object id="objvideo" style="outline:none;" type="application/x-shockwave-flash" width="'+wthvideo.params.width+'" height="'+wthvideo.params.height+'" data="'+wthvideo.params.path+'/wthplayer.swf">';
    markUp += '    <param name="movie" value="'+wthvideo.params.path+'/wthplayer.swf" />';
    markUp += '    <param name="quality" value="high" />';
    markUp += '    <param name="flashvars" value="vurl='+wthvideo.params.flv+'&amp;vwidth='+wthvideo.params.width+'&amp;vheight='+wthvideo.params.height+'&amp;actorpic='+wthvideo.params.path+'/'+wthvideo.params.actorpic+'&amp;autostart='+wthvideo.params.autostart+'&amp;exitoncomplete='+wthvideo.params.exitoncomplete+'&amp;vbuff='+wthvideo.params.buffertime+'&amp;vdelay='+wthvideo.params.delay+'&amp;vcolor='+wthvideo.params.color+'&amp;vlink='+wthvideo.params.vidlink+'&amp;openin='+wthvideo.params.openin+'&amp;delayclose='+wthvideo.params.delayclose+'&amp;fadein='+wthvideo.params.fadein+'&amp;fadeout='+wthvideo.params.fadeout+'&amp;vvol='+wthvideo.params.volume+'&amp;playbtn='+wthvideo.params.path+'/'+wthvideo.params.playbtn+'&amp;playpos='+wthvideo.params.playposition+'&amp;playtop='+wthvideo.params.playtop+'&amp;hflip='+wthvideo.params.flip+'&amp;controlbar='+wthvideo.params.controlbar+'&amp;exitbtn='+wthvideo.params.exitbtn+'" />';
    markUp += '    <param name="wmode" value="transparent" />';
    markUp += '    <param name="allowscriptaccess" value="always" />';
    markUp += '    <param name="swfversion" value="9.0.45.0" />';
    markUp += '  </object>';
    markUp += '</div>';
    if (wthvideo.params.position == "fixed") {
        if (wthvideo.params.doctype == "quirks") {
            if (wthvideo.params.top == "auto") {
                        markUp += '<!--[if IE]>';
                        markUp += '<style type="text/css">';
                        markUp += '#wthvideo {position:absolute; top: expression(offsetParent.scrollTop - 1 + (offsetParent.clientHeight-this.clientHeight) + '+bottomPx+' + "px")}';
                        markUp += '</style>';
                        markUp += '<![endif]-->';}
                    else {
                            markUp += '<!--[if IE]>';
                            markUp += '<style type="text/css">';
                            markUp += '#wthvideo {position: absolute !important;top: expression(((document.documentElement.scrollTop || document.body.scrollTop) + (!this.offsetHeight && 0)) + '+topPx+' + "px")';
                            markUp += '</style>';
                            markUp += '<![endif]-->';}
                    }
                else {
                        markUp += '<!--[if lte IE 6]>';
                        markUp += '<style type="text/css">';
                        markUp += 'html, body{height: 100%;overflow: auto;}#wthvideo {position: absolute;}';
                        markUp += '</style>';
                        markUp += '<![endif]-->';
            }
        }
    }

document.write(markUp);


}
function hideDiv() {
    wthvideo.hideDiv();
}

if (wthvideo.params.autostart=="oncethenpic") {
    if (document.cookie.indexOf("hasSeen=true") == -1) {
        var later = new Date();
        later.setFullYear(later.getFullYear()+10);
        document.cookie = 'hasSeen=true;path=/;';
        wthvideo.params.autostart = "yes";
        }
    else {
        wthvideo.params.autostart = "no";

    }
}

if (wthvideo.params.autostart=="oncethenmute") {
    if (document.cookie.indexOf("hasSeen=true") == -1) {
        var later = new Date();
        later.setFullYear(later.getFullYear()+10);
        document.cookie = 'hasSeen=true;path=/;';
        wthvideo.params.autostart = "yes";
        }
    else {
        wthvideo.params.autostart = "mute";
    }
}

if (wthvideo.params.autostart=="onceonly") {
    if (document.cookie.indexOf("hasSeen=true") == -1) {
        var later = new Date();
        later.setFullYear(later.getFullYear()+10);
        document.cookie = 'hasSeen=true;expires='+later.toGMTString();
        wthvideo.params.autostart = "yes";
        }
    else {
        wthvideo.params.autostart = "mute";
    }
}

if (wthvideo.params.autostart=="onceonlythenmute") {
    if (document.cookie.indexOf("hasSeen=true") == -1) {
        var later = new Date();
        later.setFullYear(later.getFullYear()+10);
        document.cookie = 'hasSeen=true;expires='+later.toGMTString();
        wthvideo.params.autostart = "yes";
        }
    else {
        wthvideo.params.autostart = "mute";
    }
}
if (wthvideo.params.autostart=="onceonlythenpic") {
    if (document.cookie.indexOf("hasSeen=true") == -1) {
        var later = new Date();
        later.setFullYear(later.getFullYear()+10);
        document.cookie = 'hasSeen=true;expires='+later.toGMTString();
        wthvideo.params.autostart = "yes";
        }
    else {
        wthvideo.params.autostart = "no";

    }
}

if (wthvideo.params.oncepersession == "yes") {
    onlyOnce();}
    else {
        if (wthvideo.params.oncepersession == "onceonly") {
            onlyOnce2();}
        else {
        wthvideo.drawVideo();
    }
    }


function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }

function exitWTH() {
    thisMovie('objvideo').exitVideoWTH();
}
function pauseWTH() {
    thisMovie('objvideo').pauseVideoWTH();
}

function unpauseWTH() {
    thisMovie('objvideo').unpauseVideoWTH();
}
function playWTH() {
    thisMovie('objvideo').playVideoWTH();
}
function stopWTH() {
    thisMovie('objvideo').stopVideoWTH();
}
function muteWTH() {
    thisMovie('objvideo').muteVolWTH();
}
function unmuteWTH() {
    thisMovie('objvideo').startVolWTH();
}
function cue0() {
    pauseWTH();
}

This javascript add an object element (flash video) to the page. 此javascript将对象元素(Flash视频)添加到页面。 I want this object element to be contained in specific div element. 我希望此对象元素包含在特定的div元素中。 But I do not have control on that. 但是我对此没有控制权。

I want to add it to specific div as soon as page is loaded. 我想在页面加载后立即将其添加到特定的div中。 I can write a function for that. 我可以为此编写一个函数。 What I want to know is how can I trigger that function instantly after above js add object element to the page. 我想知道的是,在上述js向页面添加对象元素之后,如何立即触发该函数。 I also welcome any other methods. 我也欢迎任何其他方法。

You can use jQuery plus the livequery.js plugin. 您可以使用jQuery以及livequery.js插件。 https://github.com/brandonaaron/livequery https://github.com/brandonaaron/livequery

After add jQuery and livequery to your page, just code this. 将jQuery和livequery添加到您的页面后,只需编写代码即可。

$('.wthvideo').livequery(function(){
    //Do your stuff here
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM