Forums Développement Multimédia

Aller au contenu

ma lighbox n'affiche pas mon flash sous IE

CODE Ajax JQuery EaseJs

1 réponse à ce sujet

#1 nickos007

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 26 January 2012 - 09:32 AM

Bonjour,

j'ai fait une lightbox qui affiche une animation swf au chargement de page html, de maniere automatique.
Mais sous internet explorer l'animation ne se charge pas et quand je click droit dessus c'est marqué "animation non chargée"
je ne voit pas ou se trouve le pb

voici mon fichier html
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test lightbox-auto</title>
    <link rel="stylesheet" href="skins/darkbox/darkbox.css" type="text/css"
    media="screen"/>
    <script type="text/javascript" src="ibox.js"></script>
    <script type="text/javascript">//<![CDATA[

    // Création d'un élément XHTML object
    function createSWF(url,width,height){
    var SWFObj,Param,e;
    try{
    SWFObj=document.createElement('object');
    SWFObj.setAttribute('type','application/x-shockwave-flash');
    SWFObj.setAttribute('pluginspage','http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash');
    SWFObj.setAttribute('data',url);
    SWFObj.setAttribute('name',url);
    SWFObj.setAttribute('width',width);
    SWFObj.setAttribute('height',height);
    Param=document.createElement('param');
    Param.setAttribute('movie',url);
    Param.setAttribute('value',url);
    Param.setAttribute('quality','height');
    SWFObj.appendChild(Param);
    return SWFObj;
    }catch(e){
    try{
    if(SWFObj){
    while(SWFObj.hasChildNodes())SWFObj.removeChild(SWFObj.lastChild);
    }
    }catch(e){}
    }
    return false;
    }
    window.onload=function(){
    var swf=createSWF('http://www.alteriade.fr/carte_voeux_2012.swf',534,285);
    swf
    // Ajoute l'object Flash dans l'arbre DOM à afficher dans la boite
    iBox.show(
    swf,
    '',// lien conduisant à l'animation complete si il ya lieu
    {
    width:534,
    height:285
    }
    );
    // Cacher la boite après 20 secondes
    setTimeout(
    function(){iBox.hide();}
    ,20000
    );
    };
    //]]>
    </script>

    </head>
    <body>
    <p>c'est reussi mwahahahahahahahaha </p>
    </body>
    </html>
et mon script ibox:

    /**
    * iBox 2.2 (Build 1612)
    * For more info & download: http://www.ibegin.com/labs/ibox/
    * Created as a part of the iBegin Labs Project - http://www.ibegin.com/labs/
    * For licensing please see readme.html (MIT Open Source License)
    */

    var iBox = function() {
    var _pub = {
    // label for the close link
    close_label: '<i>Cliquez ici pour me fermer</i>',
    // show iframed content in the parent window
    // this *does not* work with #containers
    inherit_frames: false,
    // how fast to fade in the overlay/ibox (this is each step in ms)
    fade_in_speed: 300,
    fade_out_speed: 300,
    // our attribute identifier for our iBox elements
    attribute_name: 'rel',
    // tags to hide when we show our box
    tags_to_hide: ['select', 'embed', 'object', 'param'],
    // default width of the box (when displaying html only)
    // height is calculated automatically
    default_width: 534,
    // public version number
    version_number: '2.2',
    // internal build number
    build_number: '1612',

    // browser checks
    is_opera: navigator.userAgent.indexOf('Opera/9') != -1,
    is_ie: navigator.userAgent.indexOf("MSIE ") != -1,
    is_ie6: false /*@cc_on || @_jscript_version < 5.7 @*/,
    is_firefox: navigator.appName == "Netscape" && navigator.userAgent.indexOf("Gecko") != -1 && navigator.userAgent.indexOf("Netscape") == -1,
    is_mac: navigator.userAgent.indexOf('Macintosh') != -1,

    // url for including images/external files
    base_url: '',
    //url:'swf/Menu_papillon.swf',
    /**
    * Updates the base_url variable.
    * @param {String} path Relative or absolute path to this file.
    */

    setPath: function(path) {
    _pub.base_url = path;
    },
    /**
    * Checks a container for specified tags containing rel="ibox"
    * @param {Object} container
    * @param {String} tag_name
    */

    checkTags: function(container, tag_name) {
    if (!container) var container = document.body;
    if (!tag_name) var tag_name = 'a';
    var els = container.getElementsByTagName(tag_name);
    for (var i=0; i<els.length; i++) {
    if (els[i].getAttribute(_pub.attribute_name)) {
    var t = els[i].getAttribute(_pub.attribute_name);
    if ((t.indexOf("ibox") != -1) || t.toLowerCase() == "ibox") { // check if this element is an iBox element
    els[i].onclick = _pub.handleTag;
    }
    }
    }
    },
    /**
    * Binds arguments to a callback function
    */

    bind: function(fn) {
    var args = [];
    for (var n=1; n<arguments.length; n++) args.push(arguments[n]);
    return function(e) { return fn.apply(this, [e].concat(args)); };
    },
    /**
    * Sets the content of the ibox
    * @param {String} content HTML content
    * @param {Object} params
    */

    html: function(content, params) {
    if (content === undefined) return els.content;
    if (params === undefined) var params = {};
    if (!active.is_loaded) return;
    _pub.clear();
    _pub.updateObject(els.wrapper.style, {display: 'block', visibility: 'hidden', left: 0, top: 0, height: '', width: ''});
    if (typeof(content) == 'string') els.content.innerHTML = content;
    else els.content.appendChild(content);
    var pagesize = _pub.getPageSize();
    if (params.can_resize === undefined) params.can_resize = true;
    if (params.fade_in === undefined) params.use_fade = true;
    if (params.fullscreen) {
    params.width = '100%';
    params.height = '100%';
    }
    // reset offsets
    offset.container = [els.wrapper.offsetLeft*2, els.wrapper.offsetTop*2];
    offset.wrapper = [els.wrapper.offsetWidth-els.content.offsetWidth, els.wrapper.offsetHeight-els.content.offsetHeight];
    // TODO: remove the +4 when issue is solved with calculations
    offset.wrapper[1] += 4;
    if (params.width) var width = params.width;
    else var width = _pub.default_width;
    if (params.height) var height = params.height;
    else {
    els.content.style.height = '100%';
    var height = els.content.offsetHeight + 12;
    els.content.style.height = '';
    }
    active.dimensions = [width, height];
    active.params = params;
    _pub.reposition();
    // XXX: Fix for inline containers which had elements that were hidden
    for (var i=0; i<_pub.tags_to_hide.length; i++) {
    showTags(_pub.tags_to_hide[i], els.content);
    }
    els.wrapper.style.visibility = 'visible';
    },
    /**
    * Empties the content of the iBox (also hides the loading indicator)
    */

    clear: function() {
    els.loading.style.display = "none";
    while (els.content.firstChild) els.content.removeChild(els.content.firstChild);
    },
    /**
    * Loads text into the ibox
    * @param {String} text
    * @param {String} title
    * @param {Object} params
    */

    show: function(text, title, params) {
    showInit(title, params, function() {
    _pub.html(text, active.params);
    });
    },
    /**
    * Loads a url into the ibox
    * @param {String} url
    * @param {String} title
    * @param {Object} params
    */

    showURL: function(url, title, params) {
    showInit(title, params, function() {
    for (var i=0; i<_pub.plugins.list.length; i++) {
    var plugin = _pub.plugins.list[i];
    if (plugin.match(url)) {
    active.plugin = plugin;
    plugin.render(url, active.params);
    break;
    }
    }
    });
    },
    /**
    * Hides the iBox
    */

    hide: function() {
    if (active.plugin) {
    // call the plugins unload method
    if (active.plugin.unload) active.plugin.unload();
    }
    active = {}
    _pub.clear();
    // restore elements that were hidden
    for (var i=0; i<_pub.tags_to_hide.length; i++) showTags(_pub.tags_to_hide[i]);
    els.loading.style.display = 'none';
    els.wrapper.style.display = 'none';
    _pub.fade(els.overlay, _pub.getOpacity(null, els.overlay), 0, _pub.fade_out_speed, function() { els.overlay.style.display = 'none';});
    _pub.fireEvent('hide');
    },
    /**
    * Repositions the iBox wrapper based on the params set originally.
    */

    reposition: function() {
    if (!active.is_loaded) return;
    // center loading box
    if (els.loading.style.display != 'none') _pub.center(els.loading);
    // update ibox width/height/position
    if (active.dimensions) {
    var pagesize = _pub.getPageSize();
    var width = active.dimensions[0];
    var height = active.dimensions[1];
    if (height.toString().indexOf('%') != -1) {
    els.wrapper.style.height = (Math.max(document.documentElement.clientHeight, document.body.clientHeight, pagesize.height) - offset.container[0])*(parseInt(height)/100) + 'px';
    }
    else if (height) {
    els.content.style.height = height + 'px';
    // TODO: if we dont set wrapper height, it doesnt restrict the height and the box is fine
    // so offset.wrapper[1] must not be correct
    els.wrapper.style.height = els.content.offsetHeight + offset.wrapper[1] + 'px';
    }
    else {
    els.wrapper.style.height = els.content.offsetHeight + offset.wrapper[1] + 'px';
    }
    var container_offset = (els.content.offsetHeight - els.content.firstChild.offsetHeight);
    if (width.toString().indexOf('%') != -1) {
    els.wrapper.style.width = (Math.max(document.documentElement.clientWidth, document.body.clientWidth, pagesize.width) - offset.container[1])*(parseInt(width)/100) + 'px';
    var container_offset = 0;
    }
    else {
    els.content.style.width = width + 'px';
    els.wrapper.style.width = els.content.offsetWidth + offset.wrapper[0] + 'px';
    }
    _pub.updateObject(els.content.style, {width: '', height: ''});
    var width = parseInt(els.wrapper.style.width);
    var height = parseInt(els.wrapper.style.height);
    // if we can resize this, make sure it fits in our page bounds
    if (active.params.can_resize) {
    var x = pagesize.width;
    var y = pagesize.height;
    x -= offset.container[0];
    y -= offset.container[1];
    if (width > x) {
    if (active.params.constrain) height = height * (x/width);
    width = x;
    }
    if (height > y) {
    if (active.params.constrain) width = width * (y/height);
    height = y;
    }
    _pub.updateObject(els.wrapper.style, {width: width + 'px', height: height + 'px'});
    }
    //els.content.style.width = width - offset.wrapper[0] + 'px';
    // TODO: this isn't adjusting to the right height for containers that are smaller than the page height
    // resize the wrappers height based on the content boxes height
    // this needs to be height - ibox_content[margin+padding+border]
    els.content.style.height = height - offset.wrapper[1] + 'px';
    if (active.dimensions != ['100%', '100%']) _pub.center(els.wrapper);
    }
    // fix overlay width/height (cant use css fixed on ie6 or fx or any
    // browser really due to issues)
    els.overlay.style.height = Math.max(document.body.clientHeight, document.documentElement.clientHeight) + 'px';
    },
    updateObject: function(obj, params) {
    for (var i in params) obj[i] = params[i];
    },
    /**
    * Centers an object
    * @param {Object} obj
    */

    center: function(obj) {
    var pageSize = _pub.getPageSize();
    var scrollPos = _pub.getScrollPos();
    var emSize = _pub.getElementSize(obj);
    var x = Math.round((pageSize.width - emSize.width) / 2 + scrollPos.scrollX);
    var y = Math.round((pageSize.height - emSize.height) / 2 + scrollPos.scrollY);
    if (obj.offsetLeft) x -= obj.offsetLeft;
    if (obj.offsetTop) y -= obj.offsetTop;
    if (obj.style.left) x += parseInt(obj.style.left);
    if (obj.style.top) y += parseInt(obj.style.top);
    // this nearly centers it due to scrollbars
    x -= 10;
    _pub.updateObject(obj.style, {top: y + 'px', left: x + 'px'});
    },
    getStyle: function(obj, styleProp) {
    if (obj.currentStyle)
    return obj.currentStyle[styleProp];
    else if (window.getComputedStyle)
    return document.defaultView.getComputedStyle(obj,null).getPropertyValue(styleProp);
    },
    /**
    * Gets the scroll positions
    */

    getScrollPos: function() {
    var docElem = document.documentElement;
    return {
    scrollX: document.body.scrollLeft || window.pageXOffset || (docElem && docElem.scrollLeft),
    scrollY: document.body.scrollTop || window.pageYOffset || (docElem && docElem.scrollTop)
    };
    },
    /**
    * Gets the page constraints
    */

    getPageSize: function() {
    return {
    width: window.innerWidth || (document.documentElement && document.documentElement.clientWidth) || document.body.clientWidth,
    height: window.innerHeight || (document.documentElement && document.documentElement.clientHeight) || document.body.clientHeight
    };
    },
    /**
    * Gets an objects offsets
    * @param {Object} obj
    */

    getElementSize: function(obj) {
    return {
    width: obj.offsetWidth || obj.style.pixelWidth,
    height: obj.offsetHeight || obj.style.pixelHeight
    };
    },
    fade: function(obj, start, end, speed, callback) {
    if (start === undefined || !(start >= 0) || !(start <= 100)) var start = 0;
    if (end === undefined || !(end >= 0) || !(end <= 100)) var end = 100;
    if (speed === undefined) var speed = 0;
    if (obj.fader) clearInterval(obj.fader);
    if (!speed) {
    _pub.setOpacity(null, obj, end);
    if (callback) callback();
    }
    var opacity_difference = end - start;
    var time_total = speed; // time is speed (jQuery compat)
    var step_size = 25; // step size in ms
    var steps = time_total / step_size; // total number of steps
    var increment = Math.ceil(opacity_difference / steps); // how much to incr per step
    obj.fader = setInterval(_pub.bind(function(e, obj, increment, end, callback) {
    var opacity = _pub.getOpacity(e, obj) + increment;
    _pub.setOpacity(e, obj, opacity);
    if ((increment < 0 && opacity <= end) || (increment > 0 && opacity >= end)) {
    _pub.setOpacity(e, obj, end);
    clearInterval(obj.fader);
    if (callback) callback();
    }
    }, obj, increment, end, callback), step_size);
    },
    /**
    * Sets the opacity of an element
    * @param {Object} obj
    * @param {Integer} value
    */

    setOpacity: function(e, obj, value) {
    value = Math.round(value);
    obj.style.opacity = value/100;
    obj.style.filter = 'alpha(opacity=' + value + ')';
    },
    /**
    * Gets the opacity of an element
    * @param {Object} obj
    * @return {Integer} value
    */

    getOpacity: function(e, obj) {
    return _pub.getStyle(obj, 'opacity')*100;
    },
    /**
    * Creates a new XMLHttpRequest object based on browser
    */

    createXMLHttpRequest: function() {
    var http;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http = new XMLHttpRequest();
    if (http.overrideMimeType) {
    // set type accordingly to anticipated content type
    http.overrideMimeType('text/html');
    }
    }
    else if (window.ActiveXObject) { // IE
    try {
    http = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
    if (!http) {
    alert('Cannot create XMLHTTP instance');
    return false;
    }
    return http;
    },
    addEvent: function(obj, evType, fn) {
    if (obj.addEventListener) {
    obj.addEventListener(evType, fn, false);
    return true;
    }
    else if (obj.attachEvent) {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
    }
    else {
    return false;
    }
    },
    addEventListener: function(name, callback) {
    if (!events[name]) events[name] = new Array();
    events[name].push(callback);
    },
    /**
    * Causes all event listeners attached to `name` event to
    * execute.
    * @param {String} name Event name
    */

    fireEvent: function(name) {
    if (events[name] && events[name].length) {
    for (var i=0; i<events[name].length; i++) {
    var args = [];
    for (var n=1; n<arguments.length; n++) args.push(arguments[n]);
    // Events returning false stop propagation
    if (events[name][i](args) === false) break;
    }
    }
    },
    /**
    * Parses the arguments in the rel attribute
    * @param {String} query
    */

    parseQuery: function(query) {
    var params = new Object();
    if (!query) return params;
    var pairs = query.split(/[;&]/);
    var end_token;
    for (var i=0; i<pairs.length; i++) {
    var keyval = pairs[i].split('=');
    if (!keyval || keyval.length != 2) continue;
    var key = unescape(keyval[0]);
    var val = unescape(keyval[1]);
    val = val.replace(/\+/g, ' ');
    if (val[0] == '"') var token = '"';
    else if (val[0] == "'") var token = "'";
    else var token = null;
    if (token) {
    if (val[val.length-1] != token) {
    do {
    i += 1;
    val += '&'+pairs[i];
    }
    while ((end_token = pairs[i][pairs[i].length-1]) != token)
    }
    val = val.substr(1, val.length-2);
    }
    if (val == 'true') val = true;
    else if (val == 'false') val = false;
    else if (val == 'null') val = null;
    params[key] = val;
    }
    return params;
    },
    /**
    * Handles the onclick event for iBox anchors.
    * @param {Event} e
    */

    handleTag: function(e) {
    var t = this.getAttribute('rel');
    var params = _pub.parseQuery(t.substr(5,999));
    if (params.target) var url = params.target;
    else if (this.target && !params.ignore_target) var url = this.target;
    else var url = this.href;
    var title = this.title;
    if (_pub.inherit_frames && window.parent) window.parent.iBox.showURL(url, title, params);
    else _pub.showURL(url, title, params);
    return false;
    },
    plugins: {
    list: new Array(),
    register: function(func, last) {
    if (last === undefined) var last = false;
    if (!last) {
    _pub.plugins.list = [func].concat(_pub.plugins.list);
    }
    else {
    _pub.plugins.list.push(func);
    }
    }
    }
    };
    // private methods and variables
    var active = {};
    // events
    var events = {};
    // some containers
    // we store these in memory instead of finding them each time
    var els = {};
    var offset = {};
    /**
    * Creates the iBox container and appends it to an element
    * @param {HTMLObject} elem Container to attach to
    * @return {HTMLObject} iBox element
    */

    var create = function(elem) {
    pagesize = _pub.getPageSize();
    // TODO: why isnt this using DOM tools
    // a trick on just creating an ibox wrapper then doing an innerHTML on our root ibox element
    els.container = document.createElement('div');
    els.container.id = 'ibox';
    els.overlay = document.createElement('div');
    els.overlay.style.display = 'none';
    _pub.setOpacity(null, els.overlay, 0);
    // firefox mac has issues with opacity and flash
    if (!_pub.is_firefox) els.overlay.style.background = '#000000';
    else els.overlay.style.backgroundImage = "url('" + _pub.base_url + "images/bg.png')";
    els.overlay.id = 'ibox_overlay';
    params = {position: 'absolute', top: 0, left: 0, width: '100%'};
    _pub.updateObject(els.overlay.style, params);
    els.overlay.onclick = _pub.hide;
    els.container.appendChild(els.overlay);
    els.loading = document.createElement('div');
    els.loading.id = 'ibox_loading';
    els.loading.innerHTML = 'Loading...';
    els.loading.style.display = 'none';
    els.loading.onclick = _pub.hide
    els.container.appendChild(els.loading);
    els.wrapper = document.createElement('div')
    els.wrapper.id = 'ibox_wrapper';
    _pub.updateObject(els.wrapper.style, {position: 'absolute', top: 0, left: 0, display: 'none'});
    els.content = document.createElement('div');
    els.content.id = 'ibox_content';
    _pub.updateObject(els.content.style, {overflow: 'auto'})
    els.wrapper.appendChild(els.content);
    var child = document.createElement('div');
    child.id = 'ibox_footer_wrapper';
    var child2 = document.createElement('a');
    child2.innerHTML = _pub.close_label;
    child2.href = 'javascript:void(0)';
    child2.onclick = _pub.hide;
    child.appendChild(child2);
    els.footer = document.createElement('div');
    els.footer.id = 'ibox_footer';
    els.footer.innerHTML = '';
    child.appendChild(els.footer);
    els.wrapper.appendChild(child);
    els.container.appendChild(els.wrapper);
    elem.appendChild(els.container);
    _pub.updateObject(els.wrapper.style, {right: '', bottom: ''});
    return els.container;
    };
    /**
    * Hides tags within the container
    * @param {String} tag The name of the tag (e.g. 'a')
    * @param {HTMLObject} container The container to restore tags within (defaults to document)
    */

    var hideTags = function(tag, container) {
    if (container === undefined) var container = document.body;
    var list = container.getElementsByTagName(tag);
    for (var i=0; i<list.length; i++) {
    if (_pub.getStyle(list[i], 'visibility') != 'hidden' && list[i].style.display != 'none') {
    list[i].style.visibility = 'hidden';
    list[i].wasHidden = true;
    }
    }
    };
    /**
    * Shows all previously hidden tags in a container.
    * @param {String} tag The name of the tag (e.g. 'a')
    * @param {HTMLObject} container The container to restore tags within (defaults to document)
    */

    var showTags = function(tag, container) {
    if (container === undefined) var container = document.body;
    var list = container.getElementsByTagName(tag);
    for (var i=0; i<list.length; i++) {
    if (list[i].wasHidden) {
    list[i].style.visibility = 'visible';
    list[i].wasHidden = null;
    }
    }
    };
    var showInit = function(title, params, callback) {
    if (!_initialized) initialize();
    if (params === undefined) var params = {};
    if (active.plugin) _pub.hide();
    active.is_loaded = true;
    active.params = params;
    els.loading.style.display = "block";
    _pub.center(els.loading);
    _pub.reposition();
    // hide tags
    for (var i=0; i<_pub.tags_to_hide.length; i++) {
    hideTags(_pub.tags_to_hide[i]);
    }
    // set title here
    els.footer.innerHTML = title || "";
    // setup background
    els.overlay.style.display = "block";
    if (!_pub.is_firefox) var amount = 70;
    else var amount = 100;
    _pub.fade(els.overlay, _pub.getOpacity(null, els.overlay), amount, _pub.fade_in_speed, callback);
    _pub.fireEvent('show');
    };
    var drawCSS = function() {
    // Core CSS (positioning/etc)
    var core_styles = "#ibox {z-index:1000000;text-align:left;} #ibox_overlay {z-index:1000000;} #ibox_loading {position:absolute;z-index:1000001;} #ibox_wrapper {margin:30px;position:absolute;top:0;left:0;z-index:1000001;} #ibox_content {z-index:1000002;margin:27px 5px 5px 5px;padding:2px;} #ibox_content object {display:block;} #ibox_content .ibox_image {width:100%;height:100%;margin:0;padding:0;border:0;display:block;} #ibox_footer_wrapper a {float:right;display:block;outline:0;margin:0;padding:0;} #ibox_footer_wrapper {text-align:left;position:absolute;top:5px;right:5px;left:5px;white-space:nowrap;overflow:hidden;}";
    // Default style/theme/skin/whatever
    var default_skin = "#ibox_footer_wrapper {font-weight:bold;height:20px;line-height:20px;} #ibox_footer_wrapper a {text-decoration:none;background:#888;border:1px solid #666;line-height:16px;padding:0 5px;color:#333;font-weight:bold;font-family:Verdana, Arial, Helvetica, sans-serif;font-size:10px;} #ibox_footer_wrapper a:hover {background-color:#bbb;color:#111;} #ibox_footer_wrapper {font-size:12px;font-family:Verdana, Arial, Helvetica, sans-serif;color:#111;} #ibox_wrapper {border:1px solid #ccc;} #ibox_wrapper {background-color:#999;}#ibox_content {background-color:#eee;border:1px solid #666;} #ibox_loading {padding:50px; background:#000;color:#fff;font-size:16px;font-weight:bold;}";
    var head = document.getElementsByTagName("head")[0];
    // tricky hack for IE
    // because IE doesn't like when you insert stuff the proper way
    // and we cant use relative paths to include this as an external
    // stylesheet
    var htmDiv = document.createElement('div');
    htmDiv.innerHTML = '<p>x</p><style type="text/css">'+default_skin+'</style>';
    head.insertBefore(htmDiv.childNodes[1], head.firstChild);
    htmDiv.innerHTML = '<p>x</p><style type="text/css">'+core_styles+'</style>';
    head.insertBefore(htmDiv.childNodes[1], head.firstChild);
    };
    var _initialized = false;
    var initialize = function() {
    // make sure we haven't already done this
    if (_initialized) return;
    _initialized = true;
    // elements here start the look up from the start non <a> tags
    drawCSS();
    var els = document.getElementsByTagName('script');
    var src;
    for (var i=0, el=null; (el = els[i]); i++) {
    if (!(src = el.getAttribute('src'))) continue;
    src = src.split('?')[0];
    if (src.substr(src.length-8) == '/ibox.js') {
    _pub.setPath(src.substr(0, src.length-7));
    break;
    }
    }
    create(document.body);
    _pub.checkTags(document.body, 'a');
    _pub.http = _pub.createXMLHttpRequest();
    _pub.fireEvent('load');
    };
    _pub.addEvent(window, 'keypress', function(e){ if (e.keyCode == (window.event ? 27 : e.DOM_VK_ESCAPE)) { iBox.hide(); }});
    _pub.addEvent(window, 'resize', _pub.reposition);
    _pub.addEvent(window, 'load', initialize);
    _pub.addEvent(window, 'scroll', _pub.reposition);
    // DEFAULT PLUGINS
    /**
    * Handles embedded containers in the page based on url of #container.
    * This _ONLY_ works with hidden containers.
    */

    var iBoxPlugin_Container = function() {
    var was_error = false;
    var original_wrapper = null;
    return {
    /**
    * Matches the url and returns true if it fits this plugin.
    */

    match: function(url) {
    return url.indexOf('#') != -1;
    },
    /**
    * Called when this plugin is unloaded.
    */

    unload: function() {
    if (was_error) return;
    var elemSrc = _pub.html().firstChild;
    if (elemSrc) {
    elemSrc.style.display = 'none';
    original_wrapper.appendChild(elemSrc);
    }
    },
    /**
    * Handles the output
    * @param {iBox} ibox
    * @param {String} url
    * @return {iBoxContent} an instance or subclass of iBoxContent
    */

    render: function(url, params) {
    was_error = false;
    var elemSrcId = url.substr(url.indexOf("#") + 1);
    var elemSrc = document.getElementById(elemSrcId);
    // If the element doesnt exist, break the switch
    if (!elemSrc) {
    was_error = true;
    _pub.html(document.createTextNode('There was an error loading the document.'), params);
    }
    else {
    original_wrapper = elemSrc.parentNode;
    elemSrc.style.display = 'block';
    _pub.html(elemSrc, params);
    }
    }
    }
    }();
    _pub.plugins.register(iBoxPlugin_Container, true);
    /**
    * Handles images
    */

    var iBoxPlugin_Image = function() {
    // Image types (for auto detection of image display)
    var image_types = /\.jpg|\.jpeg|\.png|\.gif/gi;
    return {
    match: function(url) {
    return url.match(image_types);
    },
    render: function(url, params) {
    var img = document.createElement('img');
    img.onclick = _pub.hide;
    img.className = 'ibox_image'
    img.style.cursor = 'pointer';
    img.onload = function() {
    _pub.html(img, {width: this.width, height: this.height, constrain: true})
    }
    img.onerror = function() {
    _pub.html(document.createTextNode('There was an error loading the document.'), params);
    }
    img.src = url;
    }
    }
    }();
    _pub.plugins.register(iBoxPlugin_Image);
    var iBoxPlugin_YouTube = function() {
    var youtube_url = /(?:http:\/\/)?(?:www\d*\.)?(youtube\.(?:[a-z]+))\/(?:v\/|(?:watch(?:\.php)?)?\?(?:.+&)?vsmile([^&]+).*/;
    return {
    match: function(url) {
    return url.match(youtube_url);
    },
    render: function(url, params) {
    var _match = url.match(youtube_url);
    var domain = _match[1];
    var id = _match[2];
    params.width = 425;
    params.height = 355;
    params.constrain = true;
    var html = '<span><object width="100%" height="100%" style="overflow: hidden; display: block;"><param name="movie" value="' + domain + '/v/' + id + '"/><param name="wmode" value="transparent"/><embed src="' + domain + '/v/' + id + '" type="application/x-shockwave-flash" wmode="transparent" width="100%" height="100%"></embed></object></span>';
    _pub.html(html, params);
    }
    }
    }();
    _pub.plugins.register(iBoxPlugin_YouTube);
    var iBoxPlugin_Document = function() {
    return {
    match: function(url) {
    return true;
    },
    render: function(url, params) {
    _pub.http.open('get', url, true);
    _pub.http.onreadystatechange = function() {
    if (_pub.http.readyState == 4) {
    // XXX: why does status return 0?
    if (_pub.http.status == 200 || _pub.http.status == 0) {
    _pub.html(_pub.http.responseText, params);
    }
    else {
    _pub.html(document.createTextNode('There was an error loading the document.'), params);
    }
    }
    }
    _pub.http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
    try {
    _pub.http.send(null);
    }
    catch (ex) {
    _pub.html(document.createTextNode('There was an error loading the document.'), params);
    }
    }
    };
    }();
    _pub.plugins.register(iBoxPlugin_Document, true);
    return _pub;
    }();
 


#2 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2533 messages

Posté 26 January 2012 - 21:18 PM

Salut,

J'avoue ne pas avoir eu le courage de passer en revue tout ton code.

Dans les premières lignes, je vois

SWFObj=document.createElement('object');

Tu ajoutes à la volée une balise pour l'intégration du flash ?
Tu as essayé de publier le flash avec la balise embed en plus ? il me semble qu'internet explorer l'utilise.

Pour éviter ce genre de soucis, je t'invite à jeter un oeil à SWFobject, c'est bien pratique pour intégrer du flash dans une page
http://code.google.com/p/swfobject/
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)