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 的选项卡,您的代码会像任何其他网页一样从指定的 URL 加载到此 iframe 中。您可以在其中使用任何 Javascript 框架(如 jQuery),因此您无需学习如何编写 FBJS。

于 2011-09-21T14:33:47.080 回答
0

设置使用Facebook 应用程序的Facebook 页面。确保使用指向服务器上文件的 iFrame 设置应用程序。当涉及到 Javascript 时,使用 iFrame 将获得更多自由,如果您也需要这样做,它是利用 CMS 的好方法。祝你好运!

于 2011-08-10T03:49:22.613 回答