fbjs setInnerFBML在Safari中不起作用

时间:2009-11-26 14:45:35

标签: safari fbjs

您好我在使用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上工作,在

之后失败

2 个答案:

答案 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);
}

希望这有助于某人。