外部网站使用这种方式引用我们的一个js文件:
<script type="text/javascript" src="test.js" data="1"></script>
data为参数,不同的外部网站其值不一样,但肯定有值。在test.js中通过getAttribute("data")获取data的值,有时候得到的是null,90%以上的情况都能正常获取值,获取不到的情况没有发现什么规律,各种浏览器都有这种情况。请教高手,可能的原因有哪些?有什么思路也欢迎赐教啊!不讨论这种传递参数的方式本身,只寻求解决获取不到参数值的问题。Javascript
<script type="text/javascript" src="test.js" data="1"></script>
data为参数,不同的外部网站其值不一样,但肯定有值。在test.js中通过getAttribute("data")获取data的值,有时候得到的是null,90%以上的情况都能正常获取值,获取不到的情况没有发现什么规律,各种浏览器都有这种情况。请教高手,可能的原因有哪些?有什么思路也欢迎赐教啊!不讨论这种传递参数的方式本身,只寻求解决获取不到参数值的问题。Javascript
解决方案 »
- 弹出“window.dialogarguments.document.getelementbyid”脚本错误
- js画面table数据排序
- 如何获取图片已经下载部分的大小
- jQuery中的属性选择器要不要加@??????
- 如何在多个<span>中获取单个值
- document.getElementById("tool").getElementsByTagName("li")
- 关于图片预载和window.onload事件的疑惑?
- setinterval时间问题,请指教!!
- 求助各位大侠们能不能帮小弟一把,小弟只剩20分了全送
- 如何让窗口自己设定自己的外观跟位置?【100分】
- js面试题,求大神解答!膜拜大神!
- 请问下我做了个弹窗div 里面放百度地图 为什么我百度地图定位的点 不是在div的中间 而是跑到div的左上角 还有就是显示框的问题
var scr = document.getElementsByTagName("script");
var data = scr[scr.length-1].getAttribute("data");
alert(data);
var data = $("script").attr("data");
比如这样可以获取到,但是我调用你的test.js 而我界面假设有二个js文件,那么上面的写法就不可以,因为获取到的是第一个 jquery-1.4.1.js 而不是第二个 当然 如果改成
$("script").last().attr("data"); 这样就可以获取到, 建议js 加个ID ,如果不想加,就循环遍历所有script js文件判断是否包含 data属性, 如果只是单独的 通过script 标签获取是不准确的
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript" src="test.js" data="1"></script>
var data = $("script").attr("data");
比如这样可以获取到,但是我调用你的test.js 而我界面假设有二个js文件,那么上面的写法就不可以,因为获取到的是第一个 jquery-1.4.1.js 而不是第二个 当然 如果改成
$("script").last().attr("data"); 这样就可以获取到, 建议js 加个ID ,如果不想加,就循环遍历所有script js文件判断是否包含 data属性, 如果只是单独的 通过script 标签获取是不准确的
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript" src="test.js" data="1"></script>谢谢ILOVE_ASPNET,test.js是获取最后一个script,然后取data参数的。
var scr = document.getElementsByTagName("script");
var data = scr[scr.length-1].getAttribute("data");
那说遍历所有script判断是否包含data属性
var data = $("script").attr("data");
比如这样可以获取到,但是我调用你的test.js 而我界面假设有二个js文件,那么上面的写法就不可以,因为获取到的是第一个 jquery-1.4.1.js 而不是第二个 当然 如果改成
$("script").last().attr("data"); 这样就可以获取到, 建议js 加个ID ,如果不想加,就循环遍历所有script js文件判断是否包含 data属性, 如果只是单独的 通过script 标签获取是不准确的
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript" src="test.js" data="1"></script>谢谢ILOVE_ASPNET,test.js是获取最后一个script,然后取data参数的。
var scr = document.getElementsByTagName("script");
var data = scr[scr.length-1].getAttribute("data");嗯,如果你是这样写的确实是获取最后一个script 再取属性data, 那应该是可以获取到的啊,不过建议吧,为了保证扩展性强点,还是换种方式吧,呵呵,因为test.js 在外部界面引用时候不一定 要是最后一个script.
遍历了仍然是同样的结果:少数情况下取不到参数data的值。js和嵌入js的html是公开访问的,我自己始终没有遇到过这种情况,也无法进行重现。初步估计可能是这部分用户的DNS被劫持了。
由于是同步加载js,并且js是放在iframe中加载的,所以执行到test.js时,test.js获取的最后一个script,一定是test.js。也试了遍历所有script取data的方式,依然是同样的结果。怀疑是请求test.js时被劫持了。
谢谢海龙。js和嵌入js的html是公开访问的,大概千分之一的情况下取不到参数data。我自己始终没有遇到过这种情况,更无法进行重现,没有机会用debug看啊。
不确定,只是怀疑。
re.php?src=t4127&t=&ci=1981567041&r=
参数值会变,且没有明显的变化规律