您好我在使用fbjs并动态创建div然后使用appendChild将其附加到现有div时遇到问题。
以下是一个例子:
var count = 0;
function addDiv(){
var theDiv = document.createElement('div');
theDiv.setId(count);
theDiv.setInnerFBML('some html here');
count++;
document.getElementById('someExistingDiv').appendChild(theDiv);
}
任何人都可以告诉我这是错误的,或者在使用setInnerFBML时是否存在使用appendChild inSafari的任何问题。使用setTextValue时,这完全正常。
P.S它适用于Firefox但不适用于Safari(Safari 4.0.3具体)
由于
更新:
它在附加的第一个div上工作,在
之后失败答案 0 :(得分:1)
setInnerFBML只接受预呈现的FBML,因此它必须来自FBML ajax请求或者在fb:js-string标记中预呈现。它无法在运行中生成。
答案 1 :(得分:0)
事实证明,这是一个尚未修复的已知错误。现在我创建了一个解决方法,并将其发布在此处以供将来参考。
由于setInnerFBML处理了第一个追加并且失败之后(不明白为什么),我决定克隆附加的第一个div并将其用于将来的追加。这是我的代码。
var count = 0;
function addDiv(){
if(count == 0){
var theDiv = document.createElement('div');
theDiv.setInnerFBML('some html here');
}else{
var theDiv = document.getElementById('0').cloneNode(true);
}
theDiv.setId(count);
count++;
document.getElementById('someExistingDiv').appendChild(theDiv);
}
希望这有助于某人。