如何从脚本代码中确定脚本的位置?

时间:2011-11-23 22:39:58

标签: javascript jquery

在努力解决this problem问题时,我遇到了另一个相关问题:如何确定正在运行的脚本的位置? (不,它不是document.location,因为它会告诉你页面的位置,包括脚本)

所以,用:

- a.html -

<script type="text/javascript" src="/my/path/myscript.js"></script>

- myscript.js -

var myLoc = document.location; // what to use instead?

2 个答案:

答案 0 :(得分:0)

如果您可以选择该脚本,则可以获取其src

var scripts = document.getElementsByTagName('script');

var loc = scripts[ 0 ].src;

这为您提供了找到的第一个script元素的src。

您也可以使用jQuery来执行此操作。

var loc = $('script').eq(0).prop('src');

或旧的jQuery版本:

var loc = $('script').eq(0).attr('src');

$(function() {
    $.ajax({
         type: 'get', cache: false, url: '/svc.html',
         success: function(h) {

             var d = document.createElement('div');
             d.innerHTML = h;

             var scripts = d.getElementsByTagName('script');

             alert( scripts[ scripts.length - 1 ].src );

             $('#main').html( d.childNodes );
         }
    });
});

答案 1 :(得分:0)

所以答案是双重的:1)如果脚本直接由标签加载,可以使用RightSaidFred的方法,包括拾取脚本列表中的最后一个条目,2)对于加载的脚本在通过ajax加载的页面中,解决方案是:Where are scripts loaded after an ajax call?

的插件