используйте document.write () для записи html в iframe, но jquery не работает в IE9 - PullRequest
0 голосов
/ 27 октября 2018

Я сохранил html-страницу в локальной системе, и я пытаюсь получить ее содержимое, затем пишу в iframe.

<html>
<head>
    <title></title>
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
    $(document).ready(function(){
        $("#buttonClick").click(function(){
            alert("Button clicked.");
        });
    });
</script>
</html>

Я использую document.write () для записи html-кода в iframe., но ошибка SCRIPT5009: '$' не определено возникает при загрузке страницы в IE9, но отлично работает в Google Chrome и Firefox.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

(Размещено решение от имени автора вопроса) .

Спасибо за ответ Ральфа Наджма, но я нашел другой способ решить эту проблему, который мне кажется более подходящим.

Дождитесь загрузки страницы, прежде чем выполнять скрипт. Ниже приведен пример:

<html>
<head>
    <title></title>
    <script src="js/jquery.min.js" type="text/javascript"></script>
    <link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>
<body><button id="buttonClick">Click Me</button></body>
<script>
    window.addEventListener('load', function() {
        $(document).ready(function(){
            $("#buttonClick").click(function(){
                alert("Button clicked.");
            });
        });
    });
</script>
</html>
0 голосов
/ 27 октября 2018

Проблема может заключаться в том, что IE выполняет код JS перед загрузкой в ​​jquery, попробуйте загрузить его динамически и прослушивать onload:

<html>

<head>
  <title></title>
  <link href="styles/myStlye.css" rel="stylesheet" type="text/css" />
</head>

<body>
  <button id="buttonClick">Click Me</button>
  <script>
    var script = document.createElement("script");

    script.src = "js/jquery.min.js";

    script.onreadystatechange = function () {
      if (this.readyState == 'complete' || this.readyState == 'loaded') {
        $("#buttonClick").click(function () {
          alert("Button clicked.");
        });
      }
    };
    script.onload = function () {
      $("#buttonClick").click(function () {
        alert("Button clicked.");
      });
    };
    document.querySelector('body').appendChild(script);
  </script>
</body>

</html>
...