Я хотел бы заменить исходный URL скрипта на лету, чтобы ускорить только этапы разработки, так что нет фактического использования. Этот вид замены хорошо работает с CSS или изображениями. Но есть трудное время, чтобы заставить его работать с JavaScript. Сценарий, кажется, не выполняется, хотя загружается через src.
Вот что я сделал.
..................
return this.each(function() {
$(this).click(function() {
var t = $(this);
options.newVal = t.val();
var absUrl = '/root_path_still_within_the_same_domain/';
//options.oldVal is just to limit the replacement scope
var oldJsUrl = absUrl + options.oldVal + '.js';
var newJsUrl = absUrl + options.newVal + '.js';
var reJsUrl = $('script[type*=javascript][src*=' + options.oldVal + ']' || 'script[type*=javascript][src*=' + options.newVal + ']');
if (oldJsUrl.length && options.oldVal.length) {
reJsUrl.attr('src', newJsUrl);
}
options.oldVal = options.newVal;
});
});
......................
В Firebug целевой старый URL-адрес src (/old_path_to_file.js) заменяется новым (/new_path_to_file.js). Так что замена работает. Но он сообщает, (см. Реальный абсолютный URL http://, в случае необходимости):
Не удалось загрузить источник для: http://localhost/........js
Таким образом, скрипт src заменен, но не выполнен. Что-нибудь, что я пропустил, если это все равно разрешено?
Я также пытался использовать $ .getScript (absUrl + options.newVal + '.js'); но это не заменяет старый src, а просто добавляет больше js в dom, а это не то, что я хочу. Любой намек на эту часть тоже?
Спасибо за всевозможную помощь.