Marius,

Thanks for the info. That got me pointed in the correct direction, and
I've got the wysiwyg editor appearing. However there are a few weirdness
issues...

1) Some of the CSS stylings are not being attached to the wysiwyg editor
(the specific one that I have noticed is that tables no longer have
shaded backgrounds on the headers or borders (using Colibri skin).

2) If I switch to source view and add some text, I am then unable to
switch back to wysiwyg view. I get a cross-domain error: 
(NS_ERROR_DOM_BAD_URI): Access to restricted URI denied
 code: 1012
 INDEX_SIZE_ERR: 1
 DOMSTRING_SIZE_ERR: 2
 HIERARCHY_REQUEST_ERR: 3
 WRONG_DOCUMENT_ERR: 4
 INVALID_CHARACTER_ERR: 5
 NO_DATA_ALLOWED_ERR: 6
 NO_MODIFICATION_ALLOWED_ERR: 7
 NOT_FOUND_ERR: 8
 NOT_SUPPORTED_ERR: 9
 INUSE_ATTRIBUTE_ERR: 10
 INVALID_STATE_ERR: 11
 SYNTAX_ERR: 12
 INVALID_MODIFICATION_ERR: 13
 NAMESPACE_ERR: 14
 INVALID_ACCESS_ERR: 15
 VALIDATION_ERR: 16
 TYPE_MISMATCH_ERR: 17
 result: 2152924148
 filename:
http://10.10.2.233/xwiki/resources/js/xwiki/wysiwyg/xwe/5CB5F3FEC4B215F8
61E3FFD8E65C48BA.cache.html
 lineNumber: 4689
 columnNumber: 0
 inner: null
 data: null
http://10.10.2.233/xwiki/resources/js/xwiki/wysiwyg/xwe/5CB5F3FEC4B215F8
61E3FFD8E65C48BA.cache.html
Line 2791


Here is my code:
     function makeWysiwyg(targetArea, randomKey) {
        cacheId = 'wysiwygCache' + randomKey;
        $('cacheArea').insert({ bottom: '<input type="hidden" id="' +
cacheId + '">' });
        (function() { 
          var field = document.getElementById(targetArea);
          if (field) { 
            // Hide the element that will be wrapped by the WYSIWYG
editor.
            field.style.visibility = 'hidden'; 
            // Show the loading animation. 
            var loading = document.createElement('span'); 
            loading.className = 'loading'; 
            loading.style.display = 'block'; 
            loading.style.position = 'absolute'; 
            loading.style.width = field.offsetWidth + 'px'; 
            loading.style.height = field.offsetHeight + 'px'; 
            field.parentNode.insertBefore(loading, field); 
            // Remove the loading animation after the WYSIWYG module has
been loaded. 
            Wysiwyg.onModuleLoad(function() { 
              loading.parentNode.removeChild(loading); 
            });
          }
        }).call();

        var wysiwygConfigNew = {
          hookId: targetArea,
          cacheId: cacheId,
          syntax: 'xwiki/2.0',
          displayTabs: true,
          defaultEditor: "wysiwyg",
          inputURL: 'javascript:parent.document.getElementById("' +
targetArea + '").value',
          plugins: 'submit line separator embed text valign list indent
history format symbol link image table macro import',
          menu: 'link image table macro import',
          toolbar: 'bold italic underline strikethrough | subscript
superscript | unorderedlist orderedlist | outdent indent | undo redo |
format | hr symbol',
          wiki: 'xwiki',
          space: 'ProjectManagement',
          page: 'UseCase-ForgotPassword',
          openofficeServerConnected:'false',
          debug: 'false'
          };

        Wysiwyg.onModuleLoad(function() {
          new WysiwygEditor(wysiwygConfigNew);
          wysiwygConfigjRSc = undefined;
        });
      }



I am calling the makeWysiwyg function at the end of my
Ajax.Request:onSuccess function, and passing a string representing the
textarea that was just inserted and a random key generated via
$util.generateRandomString(4) by the Ajax requested page (returned as a
JSON object).

Thanks!

--Matthew



-----Original Message-----
From: users-boun...@xwiki.org [mailto:users-boun...@xwiki.org] On Behalf
Of Marius Dumitru Florea
Sent: Tuesday, August 24, 2010 3:34 AM
To: users@xwiki.org
Subject: Re: [xwiki-users] Enable wysiwyg editor for dynamically
createdobjects

Hi Matthew,

On 08/13/2010 02:24 AM, Matthew Hildebrand wrote:
> So I'm dynamically adding objects to the page via an ajax request (get

> the document, create a new object of the specified type, return the 
> object in edit mode as a JSON object). What I am not able to figure 
> out, is how to get my textareas to become wysiwyg enabled (when
appropriate).
> I don't quite understand how the javascript that replaces the text 
> areas is being generated, let alone if there is a way to get it 
> generated (and returned as part of my JSON object).

You can load the WYSIWYG editor on demand for a specific property by
following
http://code.xwiki.org/xwiki/bin/view/Modules/WysiwygEditorModule#HLoadon
demandandshowsourcetext
. Let me know if you have more questions.

Hope this helps,
Marius

>
>
>
> Any help would be greatly appreciated!
>
>
>
> Thanks,
>
>
>
> --Matthew
>
> _______________________________________________
> users mailing list
> users@xwiki.org
> http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to