Hi Bruno,

Right, that far I DID get. I have a Javascript file that contains the
required Javascript for my editor. 

(Sorry, I don't have the code now):

When the user hits the tab and the panel goes into another context I create
the panel, add a HeaderContributor that adds the Javascript file. 

This panel is not created via a page refresh - it is replaced as per the
code above (i.e. currentPanel = new .... ). Will the HeaderContributor
actually be utilized at this point or is a full page refresh required?

My BIG problem (this is the crux) is HOW to call that Javascript function -
the call to 'popupateContent' effectively has to be AFTER the iframe is
initialized (so an innerHTML exists). This can't be part of a
HeaderContributor - it has to be further down the chain of execution. My
confusion is how to make this happen.

Almost there! What are the guidelines for the Wiki when I get this working?
Perhaps I can submit to the Wicket people for verification?

REALLY appreciate your discussion on this.

Cheers, Graeme.


Bruno Cesar Borges wrote:
> 
> Put that code into some .js file and add it to your panel as a
> HeaderContributor. Then you are ready to go.
> 
> -----Original Message-----
> From: Graeme Knight [mailto:[EMAIL PROTECTED]
> Sent: Monday, December 08, 2008 11:48 AM
> To: [email protected]
> Subject: Re: Populate IFRAME innerHTML on AJAX load of panel.
> 
> 
> 
> Hey Bruno,
> 
> Perhaps my ramblings with myself didn't make myself clear.
> 
> I am simply wanting to populate the innerHTML with content. I have it
> working wonderfully with Tapestry but not with Wicket as I'm not sure of
> the
> correct way of doing it.
> 
> Essentially my component will be a wysiwyg editor. I don't want to use
> standard ones because I have written my own AND I will be doing some fancy
> stuff with the content at a later date.
> 
> So perhaps here's the correct question:
> 
> What's the best way to set innerHTML on an iframe?
> 
> I have a javascript function that I would like to call, which is something
> like the following:
> 
>       IFrameArea.populateContent = function( isEditable, allowDocumentTags,
> content )
>       {
>               var iFrame = document.getElementById( IFrameArea.FRAME_NAME );
>               
>               if( iFrame.contentWindow != null )
>               {
>                       if( iFrame.contentWindow.document != null )
>                       {
>                               var iFrameDocument = 
> iFrame.contentWindow.document;
>                                                                               
>                               iFrameDocument.open();
>                               
>                               if( allowDocumentTags == true )
>                               {
>                                       iFrameDocument.write('<html><head>');
>       
>                                       iFrameDocument.write( '<link 
> rel="stylesheet" type="text/css"
> href="styles/IFrameStyle.css">' );
>                                                                               
>         
>                               iFrameDocument.write('</head><body>');
>                               }
>                               
>                               iFrameDocument.write( content );                
>                         
>       
>                               if( allowDocumentTags == true )
>                               {
>                                       iFrameDocument.write('</body></html>');
>                               }
>                               
>                               iFrameDocument.close();     
>                               
>                               if( isEditable == true )
>                               {                                       
>                                       IFrameArea.designModeOn();
>                               }
>                       }
>               }
>       };
> 
> isEditable indicates whether the iframe is editable or not,
> allowDocumentTags indicates whether the iframe should contain basic html
> tags and CSS, and the content is ... the content (created by the server) -
> this is my Tapestry-esq implementation, so of course it is open to change.
> 
> The magic question: How do I get this in the HTML for the 'context' panel?
> 
> 
> Bruno Borges wrote:
>> 
>> I've just read your thread and looks like what you want to do is quite...
>> invalid. Iframes are just like normal frames, or even, a separate
>> window/tab. If you think that way, you will notice that what you want to
>> do
>> is not possible. From a Javascript developer's perspective, of course.
>> This
>> has nothing to do with Wicket.
>> 
>> If you want to set the innerHTML property of some DOM object, that object
>> *has* to have that property. Check these URLs:
>> 
>> http://www.htmlite.com/lite021.php
>> http://msdn.microsoft.com/en-us/library/ms535258(VS.85).aspx#
>> 
>> So, stop talking with yourself about something impossible to accomplish
>> and
>> go get some sleep buddy... ;-)
>> 
>> Cheers,
>> Bruno Borges
>> blog.brunoborges.com.br
>> +55 21 76727099
>> 
>> "The glory of great men should always be
>> measured by the means they have used to
>> acquire it."
>> - Francois de La Rochefoucauld
>> 
>> 
>> On Mon, Dec 8, 2008 at 1:07 AM, Graeme Knight <[EMAIL PROTECTED]>
>> wrote:
>> 
>>>
>>> Bruno!
>>>
>>> I absolutely would love to write a wiki page on this if I can make it
>>> work
>>> -
>>> and you are right - conversation with myself *might* help others who
>>> perhaps
>>> have a similar problem.
>>>
>>> I'm not quite there yet :-( - perhaps tomorrow!
>>>
>>> Cheers, Graeme.
>>>
>>>
>>> Bruno Borges wrote:
>>> >
>>> > With all that conversation with yourself, how about writing a Wiki
>>> page
>>> > after you succeed ?! :-D
>>> >
>>> > Cheers,
>>> > Bruno Borges
>>> > blog.brunoborges.com.br
>>> > +55 21 76727099
>>> >
>>> > "The glory of great men should always be
>>> > measured by the means they have used to
>>> > acquire it."
>>> > - Francois de La Rochefoucauld
>>> >
>>> >
>>> > On Sun, Dec 7, 2008 at 11:51 PM, Graeme Knight <[EMAIL PROTECTED]>
>>> > wrote:
>>> >
>>> >>
>>> >> Hi.
>>> >>
>>> >> I'm making some progress by using an IPageLink to a page that might
>>> >> contain
>>> >> (if I can) the rendered content... HHmm...
>>> >>
>>> >> Cheers, Graeme.
>>> >>
>>> >>
>>> >> Graeme Knight wrote:
>>> >> >
>>> >> > Hi.
>>> >> >
>>> >> > I have an application with links that switch panels using AJAX:
>>> >> >
>>> >> >     :
>>> >> >     private Panel currentPanel;
>>> >> >     :
>>> >> >     ContactsListPanel manageContactsPanel = new
>>> ContactsListPanel();
>>> >> >
>>> >> >     currentPanel.replaceWith( manageContactsPanel );
>>> >> >
>>> >> >     currentPanel = manageContactsPanel;
>>> >> >     :
>>> >> >
>>> >> > One of my panels has an IFRAME on it which I wish to populate with
>>> >> content
>>> >> > on rendering. I would like to set the innerHTML through Javascript,
>>> >> rather
>>> >> > than set the SRC (the innerHTML will be injected with content that
>>> is
>>> >> > modified on the server and not a static source page).
>>> >> >
>>> >> > I have a Javascript function that can be called once the IFRAME has
>>> >> > (effectively) been rendered (using a Variables Model for replacing
>>> >> > 'originalContent' with text):
>>> >> >
>>> >> > function initializeIFrameArea()
>>> >> > {
>>> >> >       IFrameArea.populateContent( "${originalContent}" );
>>> >> > }
>>> >> >
>>> >> > The populateContent function simply sets the innerHTML on the
>>> IFRAME.
>>> >> The
>>> >> > 'originalContent' is my modified content to be injected into the
>>> >> > innerHTML.
>>> >> >
>>> >> > My question is this:
>>> >> >
>>> >> > 1) On entering the panel, I was wondering if it is possible to use
>>> a
>>> >> > HeaderContributor (i.e. this is NOT a full page rerender) to add
>>> the
>>> >> > script containing the IFrameArea Javascript on which the
>>> >> populateContent
>>> >> > is called. I can't have the initializeIFrameArea function on the
>>> page
>>> >> from
>>> >> > the start because I am using a Variables Model to change the value
>>> of
>>> >> > originalContent on the fly (i.e. when the user enters this panel
>>> the
>>> >> > content could be one of many possibilities).
>>> >> >
>>> >> > 2) On rendering I want to be able to call initializeIFrameArea, but
>>> I
>>> >> do
>>> >> > not understand how I can get this into the HTML of the panel so
>>> that
>>> it
>>> >> > calls the function after the IFRAME is effectively rendered and
>>> >> innerHTML
>>> >> > exists.
>>> >> >
>>> >> > Perhaps there is a better approach - as this seems complicated (I
>>> had
>>> >> to
>>> >> > do this with Tapestry, so I'm not sure if Wicket has a more elegant
>>> >> > approach).
>>> >> >
>>> >> > Any thoughts most welcome.
>>> >> >
>>> >> > Thanks, Graeme.
>>> >> >
>>> >>
>>> >> --
>>> >> View this message in context:
>>> >>
>>> http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-tp20887803p20888407.html
>>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
>>> >>
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>>> >>
>>> >>
>>> >
>>> >
>>> > -----
>>> > Bruno Borges
>>> > blog.brunoborges.com.br
>>> > +55 21 76727099
>>> >
>>> > "The glory of great men should always be
>>> > measured by the means they have used to
>>> > acquire it."
>>> > - Francois de La Rochefoucauld
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-tp20887803p20888901.html
>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>> 
>> 
>> -----
>> Bruno Borges
>> blog.brunoborges.com.br
>> +55 21 76727099
>> 
>> "The glory of great men should always be
>> measured by the means they have used to
>> acquire it."
>> - Francois de La Rochefoucauld
>> 
> 
> -- 
> View this message in context:
> http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-tp20887803p20895692.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ***************************************************************************************************
> "Atenção: Esta mensagem foi enviada para uso exclusivo do(s)
> destinatários(s) acima identificado(s),
> podendo conter informações e/ou documentos confidencias/privilegiados e
> seu sigilo é protegido por 
> lei. Caso você tenha recebido por engano, por favor, informe o remetente e
> apague-a de seu sistema.
> Notificamos que é proibido por lei a sua retenção, disseminação,
> distribuição, cópia ou uso sem 
> expressa autorização do remetente. Opiniões pessoais do remetente não
> refletem, necessariamente, 
> o ponto de vista da CETIP, o qual é divulgado somente por pessoas
> autorizadas."
> 
> 
> "Warning: This message was sent for exclusive use of the addressees above
> identified, possibly 
> containing information and or privileged/confidential documents whose
> content is protected by law. 
> In case you have mistakenly received it, please notify the sender and
> delete it from your system. 
> Be noticed that the law forbids the retention, dissemination,
> distribution, copy or use without 
> express authorization from the sender. Personal opinions of the sender do
> not necessarily reflect 
> CETIP's point of view, which is only divulged by authorized personnel."
> ***************************************************************************************************
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-tp20887803p20896023.html
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to