На самом деле это похоже на ошибку в jQuery. Вы должны опубликовать сообщение об ошибке. Хорошая находка между прочим.
В jQuery 1.3.2 строка 3270-3272 у нас
// inject the contents of the document in, removing the scripts
// to avoid any 'Permission Denied' errors in IE
.append(res.responseText.replace(/<script(.|\s)*?\/script>/g, ""))
Очевидно, что регистр без учета регистра i
в этом регулярном выражении отсутствует. Таким образом, каждый тег <script>...</script>
, который не является строчными, как <SCRIPT>
, <Script>
, <scriPt>
, ... не удаляется jQuery, как предполагалось.
Таким образом, строка 3272 должна выглядеть как
.append(res.responseText.replace(/<script(.|\s)*?\/script>/gi, ""))
Кроме того, эта ошибка вызывается только использованием селектора в URL-адресе загрузки test2.htm #content
. Если оставить его и использовать
$('#test').load('test2.htm',function(){....});
и test2.htm
выглядят так, как показано ниже, они также будут запускать три оповещения (независимо от того, как вы пишете скрипт-тег). Так что это тоже ошибка в угловом случае.
howdy
<SCRIPT type="text/javascript">
$(document).ready(function(){
alert('hello #1');
});
</SCRIPT>
<script type="text/javascript">
$(document).ready(function(){
alert('hello #2');
})
</script>