2010-06-24 53 views
3

我的一個員工爲我們工作的公司維護一個Facebook頁面。如何在Facebook中嵌入iframe?

公司想要一個小工具,把自己的Facebook來讓用戶輸入他們的電子郵件和訂閱我們的通訊。

誰做Facebook上聯想是不是程序設計師,所以他問我建立的東西。

我做的,用了jQuery和Ajax允許你輸入你的電子郵件地址的小頁面,並使用AJAX,所以你永遠不會離開你的頁面發送到我們的服務器。

我們希望使用iframe將此頁面嵌入到Facebook上。

首先,我們只是試圖進入的iframe,沒有工作,

後來我們發現一個教程,並試圖嵌入的iframe,它說的方式是這樣的:

<a onClick="outside_location.setInnerFBML(link_1);" style="cursor: pointer;">Let's see that iframe....</a> 
<div id="outside_location"></div> 
<fb:js-string var="link_1"> 
<fb:iframe height="500" allowTransparency="true" frameborder="0" scrolling="no" style="width:100%; border:none" src="http://URL-TO-OUTSIDE-LOCATION"></fb:iframe> 
</fb:js-string> 

<script type="text/javascript" charset="utf-8"> 
var outside_location = document.getElementById('outside_location'); 
</script> 

看起來像Facebook被附加的東西給我們的變量,這樣變得像a325461252_link_1

然後我們得到了一個JS錯誤是這樣的:

Uncaught reference error: a325461252_link_1 not defined

但每過一段時間它會工作但99%的時間,我們得到這個錯誤。

我以前從來沒有建成爲Facebook什麼,我不知道有是某種處事方式的Facebook。

有什麼我做錯了嗎?我做了很多谷歌搜索試圖找到答案,我發現的一切從「Facebook不允許iframes」到「facebook推薦iframes」,所以我真的不知道該怎麼想。

+0

如果需要使用ajax api,您可以直接在Facebook頁面上執行ajax,或者您可以使用'fb:iframe'標記嵌入任何iframe並執行iframe中的所有操作。爲什麼所有額外的代碼? – serg 2010-06-24 19:51:58

回答

3

檢查,看看您的應用程序是設置爲FBML應用程序了,而不是一個I幀應用。 iframe應用程序默認不會擴展fb:...標記。同時檢查DOM(Chrome或Firebug)以查看當您單擊該鏈接時是否更改了Dom,但是iframe不可見。

我剛剛測試了以下和它的工作:

<hr/> 
<a onClick="outside_location.setInnerFBML(location_two);" style="cursor: pointer;">Other IFrame Location</a> 
<div id="outside_location" width="540" height="270" > 
    <fb:iframe width="540" height="270" frameborder="1" src="http://www.yahoo.com" /> 
</div> 

<fb:js-string var="location_two"> 
    <fb:iframe width="540" height="270" frameborder='1' src='http://www.google.com' /> 
</fb:js-string> 

<script type="text/javascript" charset="utf-8"> 
    var outside_location = document.getElementById('outside_location'); 
</script> 

如果你想要做的一切就是添加一個iFrame到您的應用程序的畫布,那麼你可以簡單地使用這一行:

<fb:iframe width="720" height="570" frameborder="1" src="http://www.yahoo.com" /> 

或者只需將應用程序從FBML畫布應用程序更改爲iFrame應用程序,並將Canvas回調和連接URL指向當前頁面或頁面的目錄即可。如果您沒有使用Facebook的API或FBML元素,那麼您可能根本不需要進入FBML應用程序。

BTW:以編程方式添加的I幀在Facebook中,你可以使用JavaScript像這樣:

<script type="text/javascript"> 

    var Iframe = document.createElement('iframe'); 
    Iframe.setStyle('smartsize','true'); 
    Iframe.setStyle('frameborder','yes'); 
    Iframe.setStyle('scrolling','no'); 
    Iframe.setStyle('include_fb_sig','true'); 
    Iframe.setStyle('width','500px'); 
    Iframe.setStyle('height','500px'); 
    Iframe.setSrc("http://www.msn.com"); 
    document.getRootElement().appendChild(Iframe); 

</script> 

祝您好運!

+0

此功能仍可用嗎? 'fb:iframe'似乎不起作用 – ravi404 2016-08-09 12:28:02

+0

我還沒有做過幾年的Facebook編程,但我很確定FBML早就死了.... – eSniff 2016-08-10 16:30:41