javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?
天蓬老师
天蓬老师 2017-04-11 12:20:50
[JavaScript讨论组]

代码如下

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

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

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

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

<!-- 多说评论框 start -->
    <p class="ds-thread" data-thread-key="请将此处替换成文章在你的站点中的ID" data-title="请替换成文章的标题" data-url="请替换成文章的网址"></p>
<!-- 多说评论框 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">

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
高洛峰

一、你直接在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);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号