Слайды 25/26 из этой презентации рассказывают о характеристиках различных методов вставки скриптов. Это говорит о том, что IE - единственный браузер, который будет выполнять эти скрипты по порядку. Все остальные браузеры будут выполнять их в том порядке, в котором они заканчивают загрузку. Даже IE не выполнит их по порядку, если у одного или нескольких встроенных js вместо src.
Один из предложенных методов - вставить новый элемент DOM:
var se1 = document.createElement('script');
se1.src = 'a.js';
var se2 = document.createElement('script');
se2.src = 'b.js';
var se3 = document.createElement('script');
se3.src = 'c.js';
var head = document.getElementsByTagName('head')[0]
head.appendChild(se1);
head.appendChild(se2);
head.appendChild(se3);
Чтобы создать второй раздел сценария, вы можете использовать сценарий для создания этого содержимого и передачи параметров:
se2.src = 'generateScript.php?params=' + someParam;
РЕДАКТИРОВАТЬ: Несмотря на то, что в статье, которую я разместил, говорится, что мое тестирование показывает, что большинство браузеров будут выполнять ваши сценарии document.write в том случае, если у каждого из них есть src, поэтому, хотя я думаю, что приведенный выше метод предпочтительнее, вы могли бы сделать это также:
<script language="javascript" type="text/javascript">
document.write("<script type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
ВНОВЬ РЕДАКТИРОВАТЬ (ответ на комментарии к себе и другим): Вы уже генерируете скрипт на своей странице. Все, что вы делаете, может быть перенесено в другой серверный скрипт, который генерирует тот же блок кода. Если вам нужны параметры на вашей странице, то передайте их сценарию в строке запроса.
Кроме того, вы можете использовать этот же метод, если, как вы предлагаете, вы генерируете встроенный скрипт несколько раз:
<script language="javascript" type="text/javascript">
document.write("<script type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params1 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params2 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='during.php?params=" + params3 + "'><\/sc" + "ript>");
document.write("<script type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
Однако это начинает выглядеть так, как будто вы подходите к этому неверно. Если вы генерируете большой блок кода несколько раз, вам, вероятно, следует заменить его одной функцией js и вместо этого вызывать его с другими параметрами ...