Если параметр, переданный в .load
, не содержит селектора в конце, тогда да, скрипты внутри будут выполняться.
Но так как вы вызвали .load
со селектором, любые скрипты внутри не будет запущен. См. jQuery документацию :
Выполнение сценария
При вызове .load()
с использованием URL-адреса без суффиксного выражения селектора содержимое передается .html()
до удаления сценариев. Это выполняет блоки скрипта до того, как они будут отброшены. Если .load()
вызывается с выражением селектора, добавленным к URL, однако сценарии удаляются до обновления DOM и, следовательно, не выполняются. Пример обоих случаев можно увидеть ниже :
Здесь все JavaScript, загруженные в #a как часть документа, будут успешно выполнены.
$( "#a" ).load( "article.html" );
Однако в следующем случае блоки скриптов в загружаемом документе в #b извлекаются и не выполняются:
$( "#b" ).load( "article.html #target" );
Ваш случай второй, поэтому встроенные <script>
s будут удалены и не будут запущены.
Если вы хотите обновить значение для NumItems
на клиенте, не используйте .load
- вместо этого сделайте сетевой запрос к сценарию PHP, который только echos $_SESSION['NumItems']
, и установите ответ на sessionStorage
предмет.