1

既存のサイト用にFacebookiFrameアプリケーションを開発しています。コードを使用してWebページをロードし<iframe>ます。また、ホーム、招待友達などのタブ項目を含むタブセクションもあります。しかし、タブと読み込まれたWebページの間には多くの空きスペースがあります。

これは私のindex.phpファイルです

 <?php
  require_once 'appinclude.php';
  $user_id = $facebook->require_login();
 ?>

 <html xmlns="http://www.w3.org/1999/xhtml" 
 xmlns:fb="http://www.facebook.com/2008/fbml">  

 <head></head>   

 <body>   
 <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" 
         type="text/javascript"></script>

 <div id="FB_HiddenIFrameContainer" style="display:none; position:absolute; left:-100px; top:-100px; width:0px; height: 0px;"></div>

 <fb:serverfbml style="height:200px; width:760px;"> 
 <script type="text/fbml"> 
  <fb:fbml> 
  <fb:tabs>
       <fb:tab-item href='http://my_site_ip/my_app_folder/' title='Home'       selected='true' target="_TOP"/>
     <fb:tab-item href='http://my_site_ip/my_app_folder/fav.php' title='My Favorites' target="_TOP"/>
     <fb:tab-item href="http://my_site_ip/my_app_folder/invite.php" title="Invite Friends" target="_TOP"/>    
   </fb:tabs>
   </fb:fbml>
 </script>
 </fb:serverfbml>

<?php echo '<iframe name="qantas" height="640px" width="740px" frameborder="0"    resizeable="true" scrolling="no" style="border:none" src="my_url" target="_TOP"></iframe>';?>

 <script type="text/javascript"> 

    FB.init("my_api_key", "../channel/xd_receiver.htm");

    FB_RequireFeatures(["CanvasUtil"], function(){
        FB.XdComm.Server.init("../channel/xd_receiver.htm");
        FB.CanvasClient.startTimerToSizeToContent();
});

  </script>    
 </body>  
</html>  

また、[友達を招待]タブをクリックすると、画面の空のスペースの代わりに、読み込まれたWebページの上に黒いボックスが表示されます。そして、黒い領域をクリックすると、[招待]ページに移動します。このブラックボックスを削除して、招待ページに直接移動するにはどうすればよいですか?

これは私のinvite.phpファイルです:

 <?php
  require_once 'appinclude.php';
  $user_id = $facebook->require_login();
 ?>

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:fb="http://www.facebook.com/2008/fbml">  

<head></head>   

<body>   

<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"
 type="text/javascript">
</script>

<fb:serverfbml style="width: 776px;"> 
<script type="text/fbml"> 
  <fb:fbml> 
  <fb:tabs>
     <fb:tab-item href='http://apps.facebook.com/my_canvas_url/' title='Home'       selected='true' target="_TOP"/>
<fb:tab-item href='http://apps.facebook.com/my_canvas_url/fav.php' title='My Favorites' target="_TOP"/>
<fb:tab-item href="http://apps.facebook.com/my_canvas_url/invite.php" title="Invite Friends" target="_TOP"/>     
   </fb:tabs>

 <fb:request-form action="http://my_localhost_ip/FacebookApp/" 
        method="POST" 
        invite="true" 
        type="myWEb"
        target="_parent" 
        content="<fb:name uid='$user_id' useyou='false'></fb:name> is a member of myWeb.com and would like to share that experience with you.To register, simply click on the 'Register' button below.<fb:req-choice url='http://apps.facebook.com/my_canvas_url/index.php' label='Register'/>"> 

     <fb:multi-friend-selector showborder="false" actiontext="Invite your Facebook Friends to use myWeb" /> 

  </fb:request-form> 
  </fb:fbml> 
 </script>
 </fb:serverfbml> 

 <script type="text/javascript"> 
        FB.init("my_api_key", "../channel/xd_receiver.htm");
 </script>   
</body>  
</html>  
4

2 に答える 2

0

target 属性がタブ項目では機能しないようです。そこで、Facebook 開発者フォーラムのメンバーが提案したように、html と css の組み合わせを使用しました。これはリンクhttp://forum.developers.facebook.com/viewtopic.php?pid=121903で、そこからコードを取得し、それに応じてアプリを変更しました。この人物は、リンクを Facebook のタブのように見せるための CSS コードを提供しています。したがって、タブ項目を使用しているときにこの灰色のボックスに問題がある人は誰でもそのコードを利用できます。

于 2010-07-20T11:52:09.047 に答える
0

iframe アプリケーションで、javascript を使用してクライアントをリダイレクトすることで、黒 (またはグレー) レイヤーの問題を解決しました。

window.top.location.replace("http://apps.facebook.com/canvas_url/page_with_dark_layer");
于 2010-07-10T13:27:33.547 に答える