繁体   English   中英

如何动态更新元标记

[英]How to update meta tags dynamically

我知道这个问题很多,但是我还不能解决我的问题。

我有一个由php驱动的包含视频的网站。 不同的视频都有自己的URL,例如index.php?id = 1 对于Facebook分享,我希望每个视频/ URL都有更新的元标记。

每个视频的信息(标题,说明等)都存储在数据库中,我已经成功地将该信息检索到了我的站点。

这是将变量从javascript传递到PHP的脚本:

<script>
        var video;
        var URL = document.location;

        function setVideo(src){
            video = src;

            $(document).ready(function(){
                    $.ajax({
                        url: URL,
                        type: 'GET',
                        data: { 
                            videoPHP: video,      
                            }, 
                        success: function(data) {
                            // This prints the php result to html
                            $('#headerFromFile').html(data)
                         }
                     });
             });
         }
</script>

这是PHP:

if (isset($_GET['videoPHP'])) {

    $videoID = $_GET['videoPHP'];

    // SQL query
    $sql = "SELECT * FROM Videos WHERE ID='$videoID'";
    $result = $connect->query($sql);
    $row = $result->fetch_assoc();
    ?>

    <h1><?php echo $row['Header'];?></h1>
    <p><?php echo $row['Description'];?></p>
<?php

通过这样做,我可以将视频的标头和说明回显到html文档中的div #headerFromFile

但是,问题是我希望将此信息存储到当前URL的meta属性=“ og:title”meta属性=“ og:description”

非常感谢您的帮助。

在您的Ajax运行之前,将meta标记写入dom。 我建议您在页面加载之前获取数据库的数据争用,并将变量放入meta标记中。

但是,如果我理解正确,则在加载dom后以及在将旧的元数据发布到Facebook时,您的内容可能会更改。 我不知道这是否会有所帮助,因为Facebook可能也无法获取更新的meta标签,而是尝试像这样更改meta tage ...

 $('meta[name=description]').remove();
 $('head').append( "<meta name='description' content='Video Title'>" );

暂无
暂无

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

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