2010-04-18 39 views
4

根据此页面,我尽我所能将JavaScript转换为FBJS:http://wiki.developers.facebook.com/index.php/FBJS将JavaScript转换为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> 

感谢任何回应。

+8

Ech。像这样的问题让我认真考虑现在脱离Facebook平台的祝福。 Godspeed老兄。 – 2010-04-18 19:07:27

+1

@alex mcp - 该用户正在使用的FMBL被取消。 Facebook平台目前只是一个iFrame,其中oAuth2用于身份验证,Open Graph协议用于API。几乎没有那么糟糕。 :) – 2011-08-09 19:44:01

+0

这个问题严重过时,FBJS是历史! – ChrisDelsart 2011-09-02 11:38:31

回答

0

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

1

FBML选项卡(使用FBJS)现在已被弃用,将来会被禁用。你应该用IFRAME选项卡创建一个新的应用程序(现在是默认的)。

IFRAME选项卡只是包含IFRAME的选项卡,并且您的代码将作为任何其他网页从指定的URL加载到此iframe中。你可以使用任何Javascript框架(比如jQuery),所以你不需要学习如何编写FBJS。

相关问题