为什么jQuery代码段在没有IFrame的情况下工作,但不适用于IFrame?

时间:2015-03-31 21:23:18

标签: javascript jquery html iframe

作品

$("a").on("click", function(e) {
  alert(1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <a href="#">Link</a>
</div>

不起作用

$("a").on("click", function(e) {
  alert(1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <a href="#">Link</a>
</div>
<iframe id="myIframe" src="" style="width: 200px; height: 200px;" />

1 个答案:

答案 0 :(得分:3)

因为您的标记无效。 iframe不是空白元素。您应该正确关闭iframe

Chrome浏览器中首次呈现的HTML:

<html><head>
    <style>

    </style>
</head>
<body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <a href="#">Link</a>
</div>
    <script type="text/javascript">
        $("a").on("click", function(e) {
  alert(1);
});
    </script>

</body></html>

第二个:

<html><head>
    <style>

    </style>
</head>
<body>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <a href="#">Link</a>
</div>
<iframe id="myIframe" src="" style="width: 200px; height: 200px;">
    &lt;script type="text/javascript"&gt;
        $("a").on("click", function(e) {
  alert(1);
});
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</iframe></body></html>