0

URL パラメータを取得し、それに応じてメタ タグを作成する Web サイトを作成しています。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

私の知る限り、ほとんどの Web クローラーは JavaScript を実行せず、Web サイトの 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 に答える