[JS] link maken van controlRange

Pagina: 1
Acties:

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14
Loop met onze editor/CMS tegen een probleempje aan, namelijk dat het me niet lukt om een link te maken van een controlRange, bijvoorbeeld een plaatje. Als je het plaatje middels slepen selecteert is het geen probleem, dan heb je een textRange en kun je daar de htmlText property van gebruiken, maar met een controlRange krijg ik het niet voor elkaar om de werkelijke html te achterhalen om te gebruiken..

execCommand("CreateLink") is geen optie, omdat de links gegenereerd worden vanuit het systeem, tenzij iemand een manier weet om hier custom modalDialogs aan te koppelen.

Iemand een tip?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14
Tis inmiddels opgelost... Na wat speurwerk bleek dat her derde argument van execCommand("CreateLink"), de href is (dit verschilt blijkbaar per commando, soms is het de ID, soms weer wat anders).

Probleem was toen nog dat ik daar dan weer geen targets aan mee kon geven. Dit is opgelost door iets dergelijks te doen na het execCommand:

code:
1
2
3
4
5
6
7
8
tr.execCommand ("CreateLink", false, url);

if (target == "nieuw") {
    if (sel.type == "Control")
        tr(0).parentElement.target = "_blank";
    else
        tr.parentElement().target = "_blank";
}

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Wat ook erg leuk is is checken of de url binnen of buiten de site valt, en aan de hand daarvan de target te bepalen. Dus dat links naar interne documenten in hetzelfde venster openen, en naar buiten in een nieuw.

Tenminste, als je ook net als ik vindt dat dat een goed criterium is om pagina's wel of niet in een nieuw venster te openen ;)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14
Mensen krijgen in het CMS een keuze venster. Hierin kunnen ze eerst een pagina kiezen (Pagina uit de menustructuur, een los gedefinieerde pagina, of een externe url), en vervolgens hoe ze deze willen openen (zelfde venster, nieuw venster of popup waarbij ze zelf resizable/grootte op kunnen geven).

Alles in een vriendelijke wizard :)

Het systeem en de editor zijn helemaal met elkaar verweven. Op dezelfde manier kun je voorbeeldtemplates openen, bestanden invoegen, etc.

[ Voor 18% gewijzigd door Bosmonster op 12-03-2003 17:32 ]


Verwijderd

Ik ben zelf ook met zoiets bezig en liep constant tegen het probleem aan dat gebruikers tabellen of plaatje konden resizen wat ze maar wilden. Als ik het dan vervolgens aan de voorkant in een tabel wilde laten zien, werd heel de lay-out van de site vernaggelt.

Ik heb dit opgelost door de designMode op Off te zetten en dan van alle cellen contentEditables te maken. Op deze manier kunnen ze de cellen niet meer slepen. Op alle plaatjes die gebruikers invoegen heb ik een functie ingevoegd die checked of de gebruikers het plaatje groter willen slepen dan de cel, op dat moment wordt het plaatje geresized naar de maxcelbreedte. Ook wanneer je het plaatje naar een andere cel dragged wordt gekeken wat de max-cel breedte is en het plaatje daarop geresized.

Mocht je interesse in de code hebben, dan hoor ik dat graag. Misschien dat we elkaar ergens mee kunnen helpen?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14
Het CMS maakt gebruik van templates, alleen contentvelden zijn dus door gebruikers te beheren. Als ze werkelijk hun duurbetaalde site willen vernaggelen dan mogen ze dat van mij :) Een auto kun je ook tegen een boom rijden, maar dat wil nog niet zeggen dat de ontwikkelaar er rekening mee moet houden dat een bestuurder de auto moedwillig gaat vernielen :) (ok slecht voorbeeld als er alcohol in het spel is :P)

Ik wil nog wel een keer de table-lib aan de praat zien te krijgen (de losse module bij RichEdit). Deze werkt daar perfect, maar krijg ik bij onze editor niet goed werkende. Dan kunnen gebruikers tenminste ook table-cellen resizen enzo en kolommen en rijen toevoegen/samenvoegen.

[ Voor 5% gewijzigd door Bosmonster op 13-03-2003 09:23 ]


Verwijderd

Je hebt wel een punt wat betreft die auto, maar toch denk ik dat je bepaalde gebruikers tegen zichzelf in bescherming moet nemen. In windows kan je bijvoorbeeld ook niet zo snel je harde schijf formateren, omdat je dan eerst een aantal meldingen krijgt. Ik kan me zo voorstellen dat een aantal gebruikers totaal geen ervaring hebben met HTML en dus van alles gaan proberen.

Ik heb een aantal interessante tablefuncties geschreven waarmee ik rijen en kolommen in kan voegen en samen kan voegen, zonder dat de lay-out verder vernaggeld wordt.
Pagina: 1