首页 文章

动态处理元数据

提问于
浏览
2

我从服务器获取数据,以在客户端上动态创建视频库 . 这些数据包含与元数据相关的信息,例如贡献者等 .

我在我的网页上有一个标准的都柏林核心数据片段

<meta name="DC.Source" id="videdsource" />
    <meta name="DC.Description" id="metadesv" />
    <meta name="DC.Creator" id="videdcreator" />
    <meta name="DC.Contributor" id="videdcontr" />
    //and so on, for all the dublin core elements...

每次用户选择另一个视频时,我想使用类似的代码动态更改元数据值

document.getElementById("videdcreator").content=arrayvid[i];

这不起作用 . 因为如果我加载网页并查看源代码,那么标准的都柏林核心元素就会有一个值

<meta name="DC.Rights" content="Copyright 2014"  />

但是,我想动态改变的元素没有值,比如

<meta name="DC.Contributor" id="videdcontr" />

我该如何解决?

在网页上动态处理多媒体元数据的最佳做法是什么?

谢谢

3 回答

  • 0

    我对JS和stackoverflow也很新 . 不知道这是否会对你有所帮助,但你有没有尝试过以下几点?

    Ex. 1

    • 拥有您的元标记的ID - 已选中
    <meta name="DC.Source" id="videdsource" />
    <meta name="DC.Description" id="metadesv" />
    <meta name="DC.Creator" id="videdcreator" />
    
    • 触发器
    object.onclick=changeTags();
    
    • JS功能
    function changeTags(){
           $("#videdsource").attr("content","yourlink");
           $("#metadesv").attr("content","Coolest video");
           $("#videdcreator").attr("content","Chuck Norris");
        }
    

    这对你有什么帮助吗?

  • 0

    这是我的错误,因为首先,元数据不支持 id .

    但他们有一个名字 . 所以,在纯JS中,我可以做 getElementsByName 然后 setAttribute

    所以代码是

    //html part
    <meta name="DC.Creator"/>
    <button id="change" type="button">change it</button>
    
    
    //javascript part
    document.getElementById('change').onclick=myfunc;
    var ha="ha";
    function myfunc()
        {
        document.getElementsByName("DC.Creator")[0].setAttribute("content",ha);
        }
    

    您可以通过在浏览器上执行“检查元素”来查看更改

    积分将转至此Greek forum上名为"geomagas"的用户

  • 0

    使用PHP并执行类似的操作

    <meta name="DC.Creator" id="videdcreator" content="<?echo $arrayvid["vidcreator"][i];?>"/>
    

相关问题