jQuery .load () вызов не выполняет JavaScript в загруженном файле HTML

Если вы не хотите возиться с оригинальными картами, вы можете сделать что-то вроде следующего

val target = map1.clone()
val source = map2.clone()
source.foreach(e => target += e._1 -> e._2)
80
задан Brett DeWoody 23 July 2017 в 15:42
поделиться

5 ответов

Вы загружаете всю HTML-страницу в свой div, включая теги html, head и body. Что произойдет, если вы выполните загрузку и в загружаемом HTML-коде есть только сценарий открытия, сценарий закрытия и код JavaScript?

Вот страница драйвера:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>jQuery Load of Script</title>
        <script type="text/javascript" src="http://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load("jquery", "1.3.2");
        </script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#myButton").click(function() {
                    $("#myDiv").load("trackingCode.html");
                });
             });
         </script>
    </head>
    <body>
        <button id="myButton">Click Me</button>
        <div id="myDiv"></div>
    </body>
</html>

Вот содержимое файла trackingCode.html:

<script type="text/javascript">
    alert("Outside the jQuery ready");
    $(function() {
        alert("Inside the jQuery ready");
    });
 </script>

У меня это работает в Safari 4.

Обновление: добавлено пространство имен DOCTYPE и html для соответствия коду в моей тестовой среде. Протестировано с Firefox 3.6.13, пример кода работает.

55
ответ дан 24 November 2019 в 09:56
поделиться

Проверьте это в файле trackingCode.html:

<script type="text/javascript">

    $(function() {

       show_alert();

       function show_alert() {
           alert("Inside the jQuery ready");
       }

    });
 </script>
2
ответ дан 24 November 2019 в 09:56
поделиться

Я понимаю, что это несколько устаревшее сообщение, но для всех, кто зайдет на эту страницу в поисках похожего решения...

http://api.jquery.com/jQuery.getScript/

jQuery.getScript( url, [ success(data, textStatus) ] )
  • url - Строка, содержащая URL, на который отправляется запрос.

  • success(data, textStatus) - Функция обратного вызова, которая выполняется в случае успешного выполнения запроса.

$.getScript('ajax/test.js', function() {
 alert('Загрузка была выполнена.');
});
13
ответ дан 24 November 2019 в 09:56
поделиться

Ну, у меня была та же проблема, которая, казалось, происходила только для Firefox, и я не мог использовать другие команды JQuery, кроме .load(), так как я изменял внешний интерфейс на существующих PHP файлах...

В любом случае, после использования команды .load() я внедрил свой сценарий JQuery в загружаемый внешний HTML, и это, похоже, сработало. Я не понимаю, почему JS, который я загрузил в верхней части основного документа, не сработал для нового содержимого, однако...

0
ответ дан 24 November 2019 в 09:56
поделиться

Похоже, это не сработает, если вы загружаете поле HTML в динамически создаваемый элемент.

$('body').append('<div id="loader"></div>');
$('#loader').load('htmlwithscript.htm');

Я смотрю на firebug DOM, и там вообще нет узла сценария, только HTML и мой узел CSS.

Кто-нибудь сталкивался с этим?

9
ответ дан 24 November 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: