Вызов jQuery .load () не выполняет JavaScript в загруженном HTML-файле. - PullRequest
80 голосов
/ 21 мая 2009

Кажется, это проблема, связанная только с Safari. Я пробовал 4 на Mac и 3 на Windows и все еще не везет.

Я пытаюсь загрузить внешний HTML-файл и выполнить встроенный JavaScript-код.

Код, который я пытаюсь использовать, таков:

$("#myBtn").click(function() {
    $("#myDiv").load("trackingCode.html");
});

trackingCode.html выглядит следующим образом (просто сейчас, но развернусь один раз / если я получу это работающим):

<html>
<head>
    <title>Tracking HTML File</title>
    <script language="javascript" type="text/javascript">
        alert("outside the jQuery ready");
        $(function() {
            alert("inside the jQuery ready");
        });
    </script>
</head>

<body>
</body>
</html>

Я вижу как предупреждающие сообщения в IE (6 и 7) и Firefox (2 и 3). Тем не менее, я не могу видеть сообщения в Safari (последний браузер, с которым мне нужно иметь дело - требования к проекту - пожалуйста, никаких войн пламенем).

Есть мысли о том, почему Safari игнорирует JavaScript в файле trackingCode.html?

В конце концов, я хотел бы иметь возможность передавать объекты JavaScript в этот файл trackingCode.html, который будет использоваться в вызове jQuery ready, но я хотел бы убедиться, что это возможно во всех браузерах, прежде чем идти по этому пути .

Ответы [ 11 ]

0 голосов
/ 14 июня 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...