javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?
本文介绍了javascript - 我想用js注入一些功能,但怎么获取该script上的属性呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
代码如下
<script d-type="test" d-id="1111" src="xxx.com/loader.js">
例如我想要获取script
标签上的d-type
和d-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屋!
查看全文