Not sure about this solution. The content of the iframe is visible then disappears... Hhm.
Graeme Knight wrote: > > Hi guys, > > I'm making some progress. wicketGlobalPostCallHandler doesn't seem to be > working for me, but I can do something like this after the iframe: > > StringBuilder buffer = new StringBuilder( "<script>" ); > buffer.append( "IFrameArea.populateContent( false, true, 'hello > world' );" ); > buffer.append( "</script>" ); > > Label scriptLabel = new Label( "scriptLabel", buffer.toString() ); > > scriptLabel.setRenderBodyOnly( true ); > scriptLabel.setEscapeModelStrings( false ); > > add( scriptLabel ); > > This will add a nice bit of Javascript into the whole lot that will call > the populateContent function (hurray). > > Now the thing is, the text (hello world) flashes on the screen - then > disappears. > > If I hit the 'refresh' button on the browser then the innerHTML 'hello > world' sticks. If I can solve this tricky problem then I think I'm good to > go. > > Is it REALLY this simple? Why does Wicket have to be so cool? > > Cheers, Graeme. > > > Graeme Knight wrote: >> >> Hi Ernesto, >> >> No - I didn't solve this problem as yet. However, this is part of the >> process of parsing the HTML prior to insertion on the innerHTML. If I can >> get that bit working I'm going to get back to our thread on the CIDs very >> soon! >> >> Cheers, Graeme. >> >> >> Graeme Knight wrote: >>> >>> Hi Bruno, >>> >>> No I didn't try this the Label idea... I'll give it a go! >>> >>> Thanks for the link I'll let you know how it works out ... watch this >>> space! >>> >>> >>> >>> Bruno Cesar Borges wrote: >>>> >>>> Did you try to add a Label with CSS hidden attribute that executes your >>>> script? Something like this: >>>> >>>> <div style="display:none;"> >>>> <script>myJavascriptMethod();</script> >>>> </div> >>>> >>>> I'm really not sure if this actually works, but you could also check >>>> this Wiki page (yeah, it exists) >>>> >>>> http://cwiki.apache.org/WICKET/howto-do-javscript-call-after-each-wicket-ajax-update.html >>>> >>>> cheers, >>>> Bruno >>>> >>>> -----Original Message----- >>>> From: Graeme Knight [mailto:[EMAIL PROTECTED] >>>> Sent: Monday, December 08, 2008 12:12 PM >>>> To: [email protected] >>>> Subject: Re: Populate IFRAME innerHTML on AJAX load of panel. >>>> >>>> >>>> >>>> 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] >>>> >>>> *************************************************************************************************** >>>> "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." >>>> *************************************************************************************************** >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/Populate-IFRAME-innerHTML-on-AJAX-load-of-panel.-tp20887803p20898545.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]
