Hi Michael,

I tried, but I've got no response. I double checked the spelling (the
iframe's id and the javascript function's name), and the function is
global.

What I did:

- I'm using jquery-1.2.6.min.js
- inside my head tag I have:

<script type="text/javascript">

;(function( $ ) {
   $.fn.frameHook = function( name, hook ) {
      this.each( function() {
         var win = this.contentWindow;
         var target = win[name];
         win[name] = function() {
            hook.apply( win, arguments );
            return target.apply( win, arguments );
         };
      });
   };
})( jQuery );

$('#course').frameHook( 'trivNextPage', function() {
   alert( 'about to call trivNextPage' );
});

</script>


but nothing happens when I trigger the trivNextPage function, if I
assign a breakpoint to the line "$
('#course').frameHook( 'trivNextPage', function()" the the firebug
(1.2.0b4) only stops at this point when the page is refreshed. but the
function never is executed.

I don't know if I'm doing something stupid.

Many Thanks
Luiz


On Jul 4, 9:18 pm, "Michael Geary" <[EMAIL PROTECTED]> wrote:
> That's good - if it were a different domain we'd be in trouble!
>
> I forgot to ask, but the JavaScript function you want to intercept is a
> global function in the iframe, correct? Then you could use something like
> this plugin (untested):
>
>     ;(function( $ ) {
>         $.fn.frameHook = function( name, hook ) {
>             this.each( function() {
>                 var win = this.contentWindow;
>                 var target = win[name];
>                 win[name] = function() {
>                     hook.apply( win, arguments );
>                     return target.apply( win, arguments );
>                 };
>             });
>         };
>     })( jQuery );
>
> Given an iframe with id="myframe" and a global function inside the iframe
> named 'foobar', you would do:
>
>     $('#myframe').frameHook( 'foobar', function() {
>         alert( 'about to call foobar' );
>     });
>
> To help illustrate, here's a bare metal version without the jQuery
> boilerplate:
>
>     function frameHook( iframe, name, hook ) {
>         var win = iframe.contentWindow;
>         var target = win[name];
>         win[name] = function() {
>             hook.apply( win, arguments );
>             return target.apply( win, arguments );
>         };
>     }
>
>     var iframe = $('#myframe')[0];
>     frameHook( iframe, 'foobar', function() {
>         alert( 'about to call foobar' );
>     });
>
> -Mike
>
> > From: Luiz Abrahao
> > Michael, thanks for your time,
>
> > It's loaded form the same domain.
>
> > > On Jul 3, 3:41 pm, "Michael Geary" <[EMAIL PROTECTED]> wrote:
> > > Is the iframe loaded from the same domain as the containing
> > > page, or a different domain?
>
> > > > From: Luiz Abrahao
> > > > I have one page with one iframe, and there are few javascript
> > > > function on the page inside the iframe. These functions are
> > > > triggered by some flash presentations.
>
> > > > Basically the parent page has to 'know' when the user has
> > > > requested the next page (inside the iframe) and update its content
> > > > with relevant data related with this new page inside the iframe.
>
> > > > I can't change the javascript functions from the pages inside the
> > > > iframe.
>
>

Reply via email to