rai*_*son 5 javascript jquery attr
使用JQuery我正在从页面上加载的所有脚本中搜索并输出src属性.这是我的代码:
$('script').each(function(index, value) {
var src = $(this).attr('src');
var src = src || 'no source';
console.log(src);
}
Run Code Online (Sandbox Code Playgroud)
我们正在搜索的示例脚本:
<script type='text/javascript' src='http://domain.co.uk/wp-includes/js/jquery/jquery.js?ver=1.11.0'></script>
Run Code Online (Sandbox Code Playgroud)
和控制台输出将是:
http://domain.co.uk/wp-includes/js/jquery/jquery.js?ver=1.11.0
Run Code Online (Sandbox Code Playgroud)
这很好,所有这些src都在输出.但是有一个例子我得到了一个错误.当脚本将javascript直接输出到包含'src'的页面时,会出现问题.在这个例子中,我得到以下错误:Uncaught TypeError:无法读取undefined的属性'split'
我可以看到这是因为我的代码从qouputed javascript中获取了src.我在底部包含了这个Javascript,以帮助准确显示我正在谈论的内容.
具体的行是:s.src ='// api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js';
并且在错误之前,console.log输出:
//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js
我以为.attr只会抓取目标元素中的属性.我如何让它做到这一点并忽略似乎导致此错误的所有其他内容.
<script type="text/javascript" data-cfasync="false">
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = '//api.usersnap.com/load/47134af3-5898-4c09-88c9-6aed89cfac7f.js';
var x = document.getElementsByTagName('head')[0];
x.appendChild(s);
})();
</script>
Run Code Online (Sandbox Code Playgroud)
The*_*Wes -3
我觉得是这样的。如果您可以创建一个小提琴,我们可以更好地告诉您,但正在发生的情况是attr('src')返回未定义,然后您尝试在其上调用函数/属性。基本上是一个空异常。
在尝试操作“src”之前,我只想测试它是否被定义。
| 归档时间: |
|
| 查看次数: |
2353 次 |
| 最近记录: |