不和谐的opengraph嵌入未从我的网站上显示

时间:2020-07-06 15:18:58

标签: javascript html dom discord open-graph-beta

我正在制作一个使用URL参数,然后相应地从中创建元标记的网站。 Discord没有显示任何嵌入。

代码如下:

<!DOCTYPE html>
<html>
    <script>
        function getUrlVars() {
            var vars = {};
            var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
                vars[key] = value;
            });
            return vars;
        }
        
        var title = getUrlVars()["title"];
        var description = getUrlVars()["desc"];
        var color = getUrlVars()["color"];
        
        var td = document.createElement("meta");
        var tt = document.createElement("meta");
        var tc = document.createElement("meta");

        td.setAttribute("content", description);
        tt.setAttribute("content", title);
        tc.setAttribute("content", color);
        td.setAttribute("property", "og:description");
        tt.setAttribute("property", "og:title");
        tc.setAttribute("name", "theme-color");

        document.head.appendChild(td);
        document.head.appendChild(tt);
        document.head.appendChild(tc);
        
    </script>
</html> 

这是网站和结果: result

如您所见,没有嵌入显示。 我是HTML和DOM的新手,因此非常感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,大多数网络爬虫都不运行JavaScript,它们只是读取网站中的HTML。

因此,最好的选择是使用PHP。那就是我对“用户嵌入生成器”所做的

例如:

if(isset($_GET['title']) && !empty($_GET['title'])) {
    echo "<meta name='og:title' content='{$_GET['title']}' />";
}
// and so on with more open-graph tags