У меня есть следующий script, где первый и третий document.writeline
являются статическими, а генерируется второй:
<script language="javascript" type="text/javascript">
document.write("<script language='javascript' type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript'>alert('during');<\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
Firefox и Chrome будут отображаться до, во время и после, в то время как Internet Explorer сначала показывает во время и только тогда он показывает до и после.
Я столкнулся с статьей, в которой говорится, что я не первый, кто столкнулся с этим, но это вряд ли делает меня лучше.
Кто-нибудь знает, как я могу установить порядок детерминированности во всех браузерах или взломать IE для работы, как и все другие, разумные браузеры?
Предостережения: фрагмент кода - очень простой способ воспроизведения. Он генерируется на сервере, а второй script - это единственное, что меняется. Это длинный script и причина в том, что есть два сценария до и после него, поэтому браузер будет их кешировать, а динамическая часть кода будет как можно меньше. Он также может появляться много раз на одной странице с другим сгенерированным кодом.