0

我正在制作一个采用 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> 

这是网站和结果: 结果

如您所见,没有出现嵌入。我对 HTML 和 DOM 比较陌生,因此感谢所有帮助。

4

1 回答 1

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
于 2020-07-11T21:42:44.627 回答