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


Answers

$("#images").load(location.href+" #images",function(){
    $.getScript("js/productHelper.js"); 
});
Question

Кажется, это проблема, связанная только с 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, но я хотел бы убедиться, что это возможно во всех браузерах, прежде чем я схожу по этой дороге.




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

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

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

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

$.getScript('ajax/test.js', function() {
  alert('Load was performed.');
});



Я смог исправить эту проблему, изменив $(document).ready() на window.onLoad() .




Я пытаюсь сделать один jquery-плагин для функции загрузки html. Пожалуйста, обратитесь к следующей ссылке.

http://webtech-training.blogspot.in/2010/10/dyamic-html-loader.html

Пожалуйста, предложите мне улучшить его больше.

Спасибо, Мохан




Ты почти понял это. Скажите jquery, что вы хотите загрузить только скрипт:

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



Related