4

このページに従って、JavaScript を FBJS に変換するために最善を尽くしました: http://wiki.developers.facebook.com/index.php/FBJS

それでも、私のタブはまだ正しく機能していません。タブをクリックしてそれに応じてコンテンツを表示および非表示にできるように、これを修正する方法について誰か提案がありますか?

<script type="text/javascript"><!--
var tabLinks = [];
var contentDivs = [];

function init() {

  var tabListItems = document.getElementById('tabs').getChildNodes();
  for ( var i = 0; i < tabListItems.length; i++ ) {
    if ( tabListItems[i].getNodeName("LI") ) {
      var tabLink = getFirstChildWithTagName( tabListItems[i], 'A' );
      var id = getHash( tabLink.getAttribute('href') );
      tabLinks[id] = tabLink;
      contentDivs[id] = document.getElementById( id );
    }
  }

  var i = 0;

  for ( var id in tabLinks ) {
    tabLinks[id].addEventListener(onclick,  showTab)
    tabLinks[id].addEventListener(onfocus,  function() { this.blur() };
    if ( i == 0 ) tabLinks[id].setClassName('selected');
    i++;)
  }

  var i = 0;

  for ( var id in contentDivs ) {
    if ( i != 0 ) contentDivs[id].setClassName('tabContent hide');
    i++;
  }
}

function showTab() {
  var selectedId = getHash( this.getAttribute('href') );

  for ( var id in contentDivs ) {
    if ( id == selectedId ) {
      tabLinks[id].setClassName('selected');
      contentDivs[id].setClassName('tabContent');
    } else {
      tabLinks[id].setClassName('');
      contentDivs[id].setClassName('tabContent hide');
    }
  }

  return false;
}

function getFirstChildWithTagName( element, tagName ) {
  for ( var i = 0; i < element.getChildNodes().length; i++ ) {
    if ( element.getChildNodes[i].getNodeName(tagName) ) return element.getChildNodes[i];
  }
}

function getHash( url ) {
  var hashPos = url.getLastIndexOf ( '#' );
  return url.getSubString( hashPos + 1 );
}

init();
--></script>

返信ありがとうございます。

4

2 に答える 2

1

FBML タブ (FBJS を使用) は現在廃止されており、将来的には無効になります。IFRAME タブを使用して新しいアプリケーションを作成する必要があります (現在はデフォルトです)。

IFRAME タブは、内部に IFRAME を含む単なるタブであり、コードは、他の Web ページと同様に、指定された URL からこの iframe に読み込まれます。その中で任意の Javascript フレームワーク (jQuery など) を使用できるため、FBJS の書き方を学ぶ必要はありません。

于 2011-09-21T14:33:47.080 に答える
0

Facebook アプリを使用するFacebook ページをセットアップします。サーバー上のファイルを指す iFrame を使用してアプリをセットアップしてください。Javascript に関しては、iFrame を使用すると自由度が大幅に高まります。CMS を活用する必要がある場合は、CMS を活用するのに最適な方法です。幸運を祈ります!

于 2011-08-10T03:49:22.613 に答える