0

こんにちは、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 を使用しているときに、何が問題なのか、Safari の appendChild に問題があるかどうか教えてください。setTextValue を使用すると、これは問題なく機能します。

PS Firefox では動作しますが、Safari では動作しません (具体的には Safari 4.0.3)。

ありがとう

アップデート:

追加された最初のdivで機能し、その後失敗しました

4

2 に答える 2

1

setInnerFBML は事前レンダリングされた FBML のみを受け取るため、FBML ajax リクエストから取得するか、fb:js-string タグで事前レンダリングする必要があります。オンザフライで生成することはできません。

于 2010-07-27T20:50:18.107 に答える
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);
}

これが誰かに役立つことを願っています。

于 2009-11-27T17:05:42.500 に答える