使用document.write()将html写入iframe,但是jquery在IE9中不起作用

时间:2018-10-27 06:50:20

标签: javascript jquery html internet-explorer-9

我已经在本地系统中存储了一个html页面,我尝试获取内容然后写入iframe。

a

我使用document.write()将html代码写入iframe,但在IE9中加载页面时出现错误 SCRIPT5009:'$'未定义,但在google chrome和firefox中工作正常

2 个答案:

答案 0 :(得分:1)

问题可能是IE在加载jquery之前正在执行JS代码,请尝试动态加载js并监听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>

答案 1 :(得分:0)

(代表问题作者发布的解决方案)

感谢拉尔夫·纳伊姆(Ralph Najm)的回答,但是我发现了另一种解决此问题的方法,我认为这种方法更合适。

等待直到页面加载,然后再执行脚本。下面是示例:

<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>