Как мне изменить / заменить флэш-объект на jquery или чистый javascript? - PullRequest
0 голосов
/ 21 октября 2008

Я хочу изменить объект flash, заключенный в jQuery, после события onClick. Код, который я написал, по существу:

$(enclosing div).html('');
$(enclosing div).html(<object>My New Object</object>);

работает в Firefox, но не в IE. Буду признателен за указания или предложения по этому вопросу. Спасибо.

Ответы [ 3 ]

1 голос
/ 21 октября 2008

Метод empty() - лучший способ удаления контента. Не знаю, решит ли это вашу проблему, хотя:)

$('#mydiv').empty();

Вы также можете попробовать метод replaceWith(content).

0 голосов
/ 22 октября 2008

Это то, что я делаю - это взято из swfobject и немного изменено:

function removeObjectInIE(el) {
    var jbo = (typeof(el) == "string" ? getElementById(el) : el);
    if (jbo) {
        for (var i in jbo) {
            if (typeof jbo[i] == "function") {
                jbo[i] = null;
            }
        }
        jbo.parentNode.removeChild(jbo);
    }
}

function removeSWF(id) {
    var obj = (typeof(id) == "string" ? getElementById(id) : id);
    if(obj){
        if (obj.nodeName == "OBJECT" || obj.nodeName == "EMBED") {
            if (ua.ie && ua.win) {
                if (obj.readyState == 4) {
                    removeObjectInIE(id);
                }
                else {
                    $(document).ready(function() { removeObjectInIE(id); });
                }
            }
            else {
                obj.parentNode.removeChild(obj);
            }
        }else if(obj.childNodes && obj.childNodes.length > 0){
            for(var i=0;i<obj.childNodes.length;i++){
                removeSWF(obj.childNodes[i]);
            }
        }
    }
}    

Итак, вы могли бы сделать removeSWF("mydiv"); - Вы, вероятно, захотите переписать это в jQuery-манере, это взято из библиотеки, над которой я работаю, и не могу быть уверенной, что jQuery будет там. (Я заменил свою функцию готовности на $ (). Ready ())

0 голосов
/ 22 октября 2008

Попробуйте метод $ (). Remove (). Это также удаляет обработчики событий, чтобы избежать проблем с утечкой памяти, и является одной из причин, по которой просто установка пустого HTML-кода не является хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...