Iframe element

ernestd's picture

The files uploaded for this project so far are collaborative_editor.module and drupal.collaborative_editor.js under collaborative_editor module folder

Brief summary of the first steps:
- Test different hook functions: Done
- Test asyncronous calls: Done
- Insert iframe (create content subsection): Done - Current phase // it works in FF
- Insert asyncrounous calls to refresh the iframe content (heartbeat): Comming soon

The current stage (insert iframe) has the following pending issues in order to be crossbrowser:
- get the window object through a named iframe -> frames[name] instead of getElementById(id).contentWindow
- set a delay (how many seconds?) to activate the design mode in FF (using setTimeOut). IE doesn't need this delay
- use other functions to style the iframe border in IE
- ??

Additional tests (not necessary):
- create the iframe with the createIFrame() of drupal.js instead of returning the html iframe tag as initial content
- create a loading div out of the iframe and hide it when content is loaded instead of writing the Loading... inside the iframe

Further information about the use of iframes for WYSIWYG editors:
- Design mode in Firefox

IE and FF DOM Reference:
- MSDN DHTML Reference
- Gecko DOM reference


Links to project and code

robertDouglass's picture

Hi Ernest,

glad to see you making progress! Please provide links in the group description to your Drupal project page and/or to the web-cvs code repository. Thanks!

Project page

ernestd's picture

Thank you Robert, I've just added the links :)


narres's picture

Did you have a look at http://www.ajaxlaunch.com/ajaxwrite/ (which is currently only working for Firefox V.1.5+)?


ernestd's picture

Yes, I've seen it. Since it is not collaborative it'd be useful to see how to do crossbrosser functions for the editor. The problem is I don't think we are able to see any single line of the source code to learn anything. Is that right?

You are right

narres's picture

... forget it ;)


ernestd's picture

I really apreciate the link anyway. There are always things to learn from this kind of applications

Here is an interesting list extracted from wikipedia (http://en.wikipedia.org/wiki/Collaborative_editor) to take a look:
Software that was designed for collaborative real-time editing of text:

* SubEthaEdit (Mac OS X).
* ACE (Linux, Microsoft Windows, Mac OS X) is a free and easy-to-use collaborative text editor.
* Gobby (Linux, Microsoft Windows, Mac OS X) is a free software, open source project. It is cross-platform (though Mac version requires X11 and is not trivial to get working, yet easier via DarwinPorts - v.0.3.0 as at 27Dec2005). First released in June 2005.
* MoonEdit (Linux, Microsoft Windows, FreeBSD) is free for non-commercial use. It allows basic collaborative editing.
* Groove Networks contains a collaborative editing module.

Web browser based collaborative real-time editing of documents

* Yarrr allows real-time collaborative web-based editing and whiteboarding as a MediaWiki extension.
* EditDocument.com allows creation and sharing of online documents.

Other software that allows collaborative real-time editing

* FORscene is a collaborative Internet video platform - logging and publishing is real time, editing and publishing is on demand.
* GNU Emacs provides basic collaborative editing support under the X Window System, using the "make-frame-on-display" command.
* GNU Screen allows multiple users to share one console screen, but they have to share a single cursor.
* Marratech is commercial software with a whiteboard function.
* Inkscape vector drawing program allows users to edit shared documents over the network.

Software that is collaborative but not real-time

* Writeboard is just web based version control, not real-time at all.
* Writely is a web-browser-based collaborative editor. Syncs are 'every few seconds' rather than real-time.
* Zoho Writer is a web-browser-based collaborative editor currently in beta phase.

Well done. I personally

dikini's picture

Well done.

I personally would skip the focus on the WYSIWYG part and make sure the basic syncronisation works well. The networking code should be fairly cross platform, the one Drupal already uses certainly is. Having working communications is the #1 requirement for the success of this project IMHO.

a question. two years later...

monti's picture

Dear Ernest -

I need to use iframe in a new drupal-6 installation in order to host external pages within our implementation.
These pages include js code that connects external database. Trying to define a new drupal page with iframe tag did not work properly.

Will I need to use your module? Will it do what I need?


found this module

monti's picture


I guess this is what I was looking for. lemme check.