在努力解决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?
答案 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?
的插件