繁体   English   中英

如何在JavaScript中创建一个按钮,当用户单击该按钮时将打开iframe?

[英]How to create a button in javascript that will open iframe when user clicks on that button?

我正在为我网站上的帖子发表评论。 如何在JavaScript中创建一个按钮,当用户单击该按钮时,该按钮会打开带注释的iframe窗口? 诸如Facebook之类的东西会对他们的帖子发表评论。 如果有办法用其他语言创建它,我希望您编写它。 我刚刚编写了javascript,因为听说您可以在javascript中进行操作。 如果有更优雅和/或更佳的方法,请随时编写。 因此,在每个帖子下方,我都会添加一个按钮,当用户单击它时,它应打开如下所示的内容:

<iframe src="comment.php?postid=<?php echo $postid; ?>" 
    width=600px; 
    height=500px;>
</iframe>

有没有一种方法可以让iframe窗口仅在您单击按钮时加载,而不是与帖子所在页面同时加载? 例如,如果我在一个页面上有10个帖子,并且所有10个帖子的评论与带有帖子的页面同时加载,那么这会大大降低页面的速度。

您还知道如何调整iframe窗口大小以适应帖子数量,以便如果帖子包含1条评论,则窗口大小为100px,如果帖子包含5条评论,则窗口大小为500px?

我知道Facebook的评论比这要好得多,因此,如果您知道的比我的想法还好,请随时分享。

尝试使用诸如prettyPhoto之类的东西:

http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/

如果向下滚动该页面,您将看到一个示例,其中已加载的窗口显示一个iFrame。 为网站创建类似半ajax的功能非常方便。 您可以在其中使用几乎所有的灯箱克隆来进行类似的操作,但是我发现prettyPhoto是最可靠的,并且在那里提供了不错的支持。 这确实使用jQuery以及其自身的javascript文件正常工作,但是它很小。

希望这可以帮助。

一个简单的解决方案将是您的问题。

    <html>
    ..
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
...
    <body>
    ...
    <div class='comments-container'></div>
    <a class='show-comments' href='#'>Show Comments</a>
    ...
    <script>
    $(".show-comments").click(function(){
    $(".comments-container").html('<iframe src="comment.php?postid=<?php echo $postid; ?>" 
        width=600px; 
        height=500px;>
    </iframe>');
    });
    </script>
</body>
</html>

或者,您可以将所有注释加载到div元素上,默认情况下将其隐藏,然后单击按钮后即可显示它。 该解决方案可能是

<html>
    ..
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
...
    <body>
    ...
    <div class='comments-container'>
comment 1: ----    
comment 2: -----
</div>
    <a class='show-comments' href='#'>Show Comments</a>
    ...
    <script>
    $(".show-comments").click(function(){
    $(".comments-container").slideDown("slow");
    });
    </script>
</body>
</html>

我会jQuery .load,.post,.get或.ajax

在每篇文章下都有一个名为注释的div类,并且在该div上不显示任何CSS。 当用户单击该文章的“查看评论”按钮时,向服务器发送请求,并请求该文章ID的评论。

您将需要将文章的ID存储在“查看评论”链接的属性中,以便您可以通过.load请求传递您要评论的文章的ID。

<div articleid="5" class="view-com-button">view comments</div>
<div class="comment" articleid="5" style="display:none"></div>
$(".view-com-button").click(function(event){
$(".comment[articleid='$(this).attrib("articleid").load("comment.php", {( "idarticle" : $(this).attrib("articleid") )};
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM