你看到iframe有什么替代品吗?

时间:2011-02-09 20:44:58

标签: javascript jquery css iframe

我有一个网站,我想制作一个像按钮分享的Facebook,将其添加到我的其他(第二)网站

我想在第二个网站上显示它的次数。

我有这个代码:[在目标网站] 只需查询并回复次数。

<?PHP include('../../includes/conexion.php');

$url = $_get['url'];
 $sql = "SELECT times FROM URLS WHERE url = '$url' ORDER BY nkeeps DESC LIMIT 1";
    $r = mysql_query($sql) or die(mysql_error());
    $n = 0;
    while ($row = mysql_fetch_array($r)) {
        $n = $row['nkeeps']+1;

    }
echo $n;

?>

然后我做:[在源网站] 我在底部创建了按钮,顶部有计数器(iframe)

$(".keeper").html("<div style='width:50px;float:left;text-align:center;height:50px;'>
                        <div style='width:50px;float:left;height:25px;'>
                           <iframe style='width:49px;color:#444;height:24px;border:1px solid #f6f5f7;overflow:hidden;' src='http://website.com/API/public/keep.php?url="+url+"'></iframe>                   </div>
                       <div style='width:50px;height:50px;float:left;'>
                            <a class='keep_btn' href='#' style='background-color:#006;border:1px solid #f6f5f7;color:white;'>keep</a>
                      </div>
                 </div>");

正如你所看到的,顶部div显示通过iframe的次数(我管理自己的URL的东西)但是我无法在右侧的小iframe上获得'滚动式'并且它看起来不像facebook sharer ... :(所以我在想这个iFrame的另一种选择,我如何只用JS加载那段内容?

基本上,

这是一个设计问题。 iframe很棒。但是我怎么能看起来像一个普通的盒子?

3 个答案:

答案 0 :(得分:1)

不是使用iframe获取数字,而是使用Ajax调用来获取它。使用XHR(我认为是jQuery中的$ .ajax())或者使用json返回它并用jsonp获取它。

你真的应该使用样式表。那些内联样式不是很好。

答案 1 :(得分:1)

有一个原因,为什么Facebook和Twitter使用iframe而不是AJAX。 Ajax不允许从不同的域获取数据。因此,如果您的源网站和目标网站位于不同的域中,则必须坚持使用iframe。如果您对iframe的唯一反对意见是它的外观,那么您应该使用css来强化它。 iframe可以像任何其他元素一样被激活,因此将其更改为div,不会让它变得更漂亮。

答案 2 :(得分:0)

您可以使用$ .get()通过ajax获取代码,然后获取返回代码中的数字并放入div。

类似的东西:

$.get(
   "http://keepyourlinks.com/API/public/keep.php?url=http://new.funcook.com/",  
   function(data) {
      $("div_selector").text($(data).find("selector_for_element_with_count").text());
  }
);

在查看代码时,如果您可以在正在使用的HTML标记上添加一些ID(例如,具有原始值的标记,以及保存该值的新标记),则可能会有所帮助。它将使选择器更简单。