我想在onClick事件后更改jQuery中包含的flash对象。我写的代码基本上是:
$(enclosing div).html('');
$(enclosing div).html(<object>My New Object</object>);
适用于Firefox但不适用于IE。我希望有关这方面的指示或建议。感谢。
答案 0 :(得分:1)
empty()
方法是删除内容的更好方法。不知道这是否能解决你的问题:)
$('#mydiv').empty();
您也可以尝试replaceWith(content)
方法。
答案 1 :(得分:0)
尝试使用$()。remove()方法。这也会删除事件处理程序以避免内存泄漏问题,这也是将HTML设置为空的原因之一。
答案 2 :(得分:0)
这就是我正在做的事情 - 它取自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())