javascript - 单击图像时打开窗口,单击时关闭新窗口

标签 javascript php jquery html image

我使用此代码来显示从数据库检索的图像。 $path 包含图像的路径,$res_path 包含同一图像的较小版本的路径。我想做的是,当用户单击图像时,将出现一个新窗口(不是新选项卡),其中仅包含 $path 中存在的图像。然后,当用户单击该新弹出窗口中存在的图像时,我希望关闭该窗口。任何提示都会有帮助。 代码:

<?php
                //unset($_SESSION['search']);
                if( isset($_SESSION['search']) )
                {
                    //unset($_SESSION['search']);
                    $rows = $_SESSION['search_rows'];
                    $photoArray = $_SESSION['search'];
                }
                else
                {
                    $rows = $_SESSION['rows'];
                    $photoArray = $_SESSION['array'];
                }
                //display all photos in database
                //$rows = $_SESSION['rows'];
                for ($x = 0; $x < $rows; $x++) {
                    $name = $photoArray[$x][1];
                    $username = $photoArray[$x][8];
                    $category = $photoArray[$x][9];
                    $description = $photoArray[$x][2];
                    $likes = $photoArray[$x][7];
                    $path = $photoArray[$x][3];
                    $res_path = $photoArray[$x][4];
             ?>
             <center><table style="width:80%" height = "320" align="center">
                <tr>
                    <th rowspan="6" width="50%"><img onclick="myFunction('<?php echo $path ?>')" src="<?php echo $res_path ?>" alt=""></img></th>
                    <td>Name: <?php echo $name; ?></td>
                </tr>
                <tr><td>User: <?php echo $username; ?></td></tr>
                <tr><td>Category: <?php echo $category; ?></td></tr>
                <tr><td>Description: <?php echo $description; ?></td></tr>
                <tr><td>path: <?php echo $path; ?></td></tr>
                <tr><td>Likes: <?php echo $likes; ?></td></tr>
            </table></center>
             <?php 
             unset($_SESSION['search']);
             unset($_SESSION['search_rows']);
             } 
             ?> 

这是我的 javascript 文件,它创建了新窗口。我认为通过使用 window.write() 我可以编写一个 javascript 函数,该函数在单击时关闭新窗口,但我做错了。 js:

function myFunction(data) {
    img = new Image();
    img.src = data;
    window.open(data, '_blank', 'toolbar=0,location=0,menubar=0, width = '+ img.width +', height=' + img.height);
    //window.write(<script type="text/javascript"> $(document).click(function(e) { if (e.button == 0) {window.close(); }}); </script>);
}

最佳答案

正如@Rikudou_Sennin所述,您可以使用一些Javascript来创建您正在寻找的体验,您正在寻找的工具是模态框(也称为灯箱),如果您熟悉的话Javascript我建议你使用Magnific Popup 。如果您不熟悉 Javascript 或 JQuery,您可以采用 CSS 方法,可以找到有关实现此目的的教程和一些示例 here 。我很想留下答案作为评论,但我仍然没有权利。

关于javascript - 单击图像时打开窗口,单击时关闭新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38001434/

相关文章:

Javascript:验证名称是否由一组字符组成的有效方法

javascript - 文字闪烁问题

javascript - JQuery/AJAX 从外部文件读取数据

javascript - 使用 Javascript 将文本 CSS 解析为 JSON

javascript - 在 HTML 编码中嵌入 Javascript 最佳实践

javascript - 在不更改 url 页面的情况下发送表单

php - Doctrine :仅在关系不存在的地方查询?

php - 无法在 Linux 中附加正确的 session tmux

javascript - 为什么 document.body.style.backgroundImage 名称没有显示在警报中?

javascript - 使用jquery和php的评论回复程序?