在过去的6个月里,我一直在很多网站上运行这个脚本,而且在我收到以下网站的几个网站上:
未捕获的TypeError:无法调用未定义的方法'split'(匿名 功能)
对此脚本的调用在页面上发生两次,并且在初始调用中仅在第二次调用时才会发生。我得到这个错误的原因是因为我从正在写入DOM的脚本标记中提取参数,并且它的索引随着DOM呈现而改变。以下是我目前从脚本中提取参数的方法:
var scripts = document.getElementsByTagName("script");
var index = scripts.length - 1;
var pubtag = scripts[index];
var newtag = pubtag.src.replace(/^[^\?]+\??/,'');
var parts = newtag.split('&');
var part1 = parts[0].split('=');
var part2 = parts[1].split('=');
作为参考,调用的脚本在DOM中呈现如下:
第一次电话
<script src="mysite.com/lilscript.js?id=client-name&page-position=home-top"></script>
第二次电话
<script src="mysite.com/lilscript.js?id=client-name&page-position=home-bottom"></script>
有人能推荐一种更好的方法来获取脚本的持久索引吗?或者建议一种在不操作模板文件的情况下更准确地提取脚本参数的方法?