javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?

查看:72
本文介绍了javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

代码如下

<script d-type="test" d-id="1111" src="xxx.com/loader.js">

例如我想要获取script标签上的d-typed-id怎么获取呢?

或者还有什么其他方式呢?

后面我看了下多说的代码如下,需要设置一个参数duoshuoQuery,同时异步加载一个js。

<!-- 多说评论框 start -->
    <div class="ds-thread" data-thread-key="请将此处替换成文章在你的站点中的ID" data-title="请替换成文章的标题" data-url="请替换成文章的网址"></div>
<!-- 多说评论框 end -->
<!-- 多说公共JS代码 start (一个网页只需插入一次) -->
<script type="text/javascript">
var duoshuoQuery = {short_name:"godtail"};
    (function() {
        var ds = document.createElement('script');
        ds.type = 'text/javascript';ds.async = true;
        ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
        ds.charset = 'UTF-8';
        (document.getElementsByTagName('head')[0] 
         || document.getElementsByTagName('body')[0]).appendChild(ds);
    })();
    </script>
<!-- 多说公共JS代码 end -->

我可以改成如下:

<script>
    var xxxConfig = {
        type: 'test',
        id: 1111
    }
</script>
<script d-type="test" d-id="1111" src="xxx.com/loader.js">

但是不够简洁,大家有没有什么比较好的方法?谢谢大家?

解决方案

一、你直接在loader.js调用下面提供的方法就行了。
比如你获取type
var type=getscriptarg("d-type");

function getscriptarg(key) {
        var scripts = document.getElementsByTagName("script"),
        script = scripts[scripts.length - 1],
        src = script.src;
        return (src.match(new RegExp("(?:\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', ""])[1];
}

二、还有就是你可以把script标签看成和普通的标签一样就行了。
改怎么获取就怎么获取,
<script id="xxxxxxx" data-type="yyyyyyyy"></script>
用jquery获取:
var type=$("#xxxxxxx").data(type);

这篇关于javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆