Получение черной рамки внутри iframe при нажатии на элемент вкладки в приложении Facebook iFrame - PullRequest
1 голос
/ 09 июля 2010

Я разрабатываю приложение Facebook iFrame для существующего сайта. Я загружаю веб-страницу, используя код <iframe>. У меня также есть раздел вкладок с закладками Home, InviteFriends и т. Д. Но между вкладками и загруженной веб-страницей много свободного места.

Это мой файл 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>  

А также, когда я нажимаю на вкладку Пригласить друзей, я получаю черный ящик на моем экране над загруженной веб-страницей вместо пустого пространства. И если я щелкну черную область, она перейдет на страницу приглашения. Как убрать этот черный ящик и перейти непосредственно на страницу приглашения?

Это мой файл 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>  

Ответы [ 2 ]

0 голосов
/ 20 июля 2010

Кажется, что целевой атрибут не работает с элементами табуляции.Поэтому я использовал комбинацию html и css, предложенную участником форума разработчиков Facebook.Это ссылка http://forum.developers.facebook.com/viewtopic.php?pid=121903, откуда я получил код и соответственно изменил свое приложение.Человек дал код CSS, чтобы ссылка выглядела как вкладки Facebook.Таким образом, любой, кто имеет проблемы с этим серым квадратом при использовании элементов Tab, может использовать этот код.

0 голосов
/ 10 июля 2010

В приложении iframe я решил проблему черного (или серого) слоя, перенаправив клиента через javascript, используя

window.top.location.replace("http://apps.facebook.com/canvas_url/page_with_dark_layer");
...