0

我的计划是在页面上找到第一个 img 并在 head 中自动创建 og:image 标签。但是,由于某种原因,虽然下面的代码找到了第一个元标记,但当我尝试向它附加一些东西,或者在它之前添加一些东西时,它不起作用。任何帮助,无论这是否值得,不胜感激。

到目前为止,这是我的代码

function img_find() {
    var imgs = document.getElementsByTagName("img");
    var imgSrcs = [];
    for (var i = 0; i < imgs.length; i++) {
        imgSrcs.push(imgs[i].src);
    }
    return imgSrcs;
}
var img = img_find();
var ogmetatag = document.createElement('meta');
ogmetatag.content = img[0];

var metatags = document.getElementsByTagName('meta')[0];
console.log(metatags);
metatags.appendChild(ogmetatag);
//    jQuery(document).ready(function() {
//     var img = jQuery('img').attr('src');
//     jQuery("meta[property='og:image']").attr('content', img);
//     jQuery('head').append('hiya');
// });
</script>
4

2 回答 2

1

替换这一行:

metatags.appendChild(ogmetatag);

有了这个:

metatags.parentNode.insertBefore(ogmetatag, metatags.nextSibling);
于 2013-09-12T23:29:37.533 回答
1

您在这里缺少的是将元标记添加到页面(即标题),您只在 DOM 中创建它。你可以这样做:

var img = img_find();
var ogmetatag = document.createElement('meta');
ogmetatag.setAttribute('property', 'og:image');
ogmetatag.setAttribute('content', img[0]);
document.head.appendChild(ogmetatag);

不确定机器人是否可以访问使用 JavaScript 生成的元标记。

于 2013-09-12T23:34:44.560 回答