0

我有一个包含 iframe 的 HTML 页面,我正在尝试在 iframe 中的链接上编写函数。这些函数将在 HTML 页面中进行更改...

以下脚本适用于 iframe 中单击的第一个链接。但是当 iframe 更改“src”时,该功能将不再起作用。

即使 iframe 的 src 发生更改,我怎样才能使其工作?

(所有页面都在同一个域中)

<script type="text/javascript">
  $("iframe").contents().find("a").click(function() {
    alert('Load was performed.');
  });
</script>
4

2 回答 2

1

尝试使用 .live() 方法,它将事件绑定到现有元素和未来元素。更改 src 时,需要再次将 click 事件绑定到新链接。

我不知道 .live() 方法是否适用于 iframe,但你可以试试这个:

  $("iframe").contents().find("a").live('click',function() {
    alert('Load was performed.');
  });

对不起我的英语不好!

我不知道它是否会起作用(抱歉,我现在没有地方可以测试),但是如果您尝试在 iframe 的 onLoad 事件上绑定一个函数会发生什么(即使 W3C 说 iframe 没有事件,它似乎被所有浏览器支持):

    <iframe src="/my_contents" onLoad="onload_function()"></iframe>
    ...
   <script>
        onload_function(){
          $(function(){
            $("iframe").contents().find("a").click(function() {
              alert('Load was performed.');
            });
          });
        }
    </script>
于 2010-12-07T15:32:58.777 回答
0

如果它与您的域相同,则它应该可以工作,如果不是因为某些来源策略,它将无法作为其跨域工作。

于 2010-12-07T15:21:36.533 回答