在运行时生成包含自定义语言的脚本块

时间:2012-01-09 13:55:27

标签: javascript html

我在我的页面中包含了一个时髦的脚本(来自德国社交网络VZ),这需要我插入一个包含自定义“语言”的脚本块:

<script type="vz/login">
    client_id : c47a1d7f134b88c9f12448e08f2ef7289e9fc8
    redirect_uri : http://game.example.com/vzcallback.html
    callback : logResponse
    fields : emails,gender,birthday
</script>

我可以在运行时使用Javascript(没有PHP或其他服务器端代码)将这样的块插入到我的页面中吗?我需要这个动态设置client_id

此外,我还需要插入类似的内容:

<script src="https://secure.studivz.net/Js/id/v4/library.js" 
    data-authority="platform-redirect.vz-modules.net/r"
    data-authorityssl="platform-redirect.vz-modules.net/r" type="text/javascript">
</script>

但我不认为添加这些data-属性将是一项艰巨的挑战。

2 个答案:

答案 0 :(得分:1)

是的,你可以,

var el = document.createElement("script");
el.setAttribute("type","vz/login");
el.innerHTML = "client_id : "+new_client_id
               +"\nredirect_uri : http://game.example.com/vzcallback.html"
               +"\ncallback : logResponse"
               +"\nfields : emails,gender,birthday";
document.body.appendChild(el);

对于第二次剪辑使用

var headID = document.getElementsByTagName("head")[0];         
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'https://secure.studivz.net/Js/id/v4/library.js';
newScript.setAttribute("data-authority","platform-redirect.vz-modules.net/r");
newScript.setAttribute("data-authorityssl", "platform-redirect.vz-modules.net/r");
headID.appendChild(newScript);

答案 1 :(得分:0)

您可以在运行时将vz / login脚本节点添加到dom。但是你需要确保在正在寻找它的JS之前添加了 vz / login节点。