tinyMCE instance on the fly - safari refresh

Pagina: 1
Acties:

Onderwerpen


  • ZpAz
  • Registratie: September 2005
  • Laatst online: 11-09 21:48
Hallo,

Ik zit met een uiterst vreemd probleem. Ik heb een pagina met daarin een content div met het id 'content'. Wanneer de pagina geladen wordt wordt via javascript deze vervangen door een textarea met als value de innerHTML van de content div.

Wanneer dat is gedaan wordt er een tinyMCE instance aangemaakt over dat betreffende textarea.

Dit werkt prima, in de browsers die ik heb getest (firefox, opera, safari).

Nu is het vreemde dat als je de eerste keer op een pagina komt in safari, hij de editor netjes laad, maar kom je een tweede / 3e keer op dezelfde pagina? Dan gaat hij vanaf dat moment de editor niet meer laden, maar wel de textarea. Na een refresh doet hij het wel weer?

De code die ik gebruik om alles in elkaar te bakken.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
jQuery(document).ready(function(){ // vervanger voor window.onload
    //Get width, height and content
    var width = jQuery("#content").css("width");
    var height = jQuery("#content").css("height");
    var content = jQuery("#content").html();
    
    //Create textarea
    jQuery("#content").html('<textarea id="contentEditor">' + content + '</textarea>');
    jQuery("#contentEditor").css("width", width);
    jQuery("#contentEditor").css("height", "475px");
    
    //Replace area by editor
    tinyMCE.execCommand("mceAddControl", false, "contentEditor");
}


De url waar je dit alles met hartelust uit mag testen is http://klanten.indev.nl/twice2/cms/

Zelf dacht ik mischien is het een cache probleem? Maar hoe krijg ik het dan bij een externe JS file voor elkaar om deze niet te cachen?

Hiervoor had ik deze oplossing, maar deze doet meer fout dan goed.

code:
1
2
3
4
5
6
7
8
9
<?php
//This file loads JS so it wont be cached.. (preventing some safari errors)
header('Pragma: no-cache');
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header('Content-Type: text/javascript');
 
readfile($_GET['file']);
?>


Ik zit hier al twee dagen mee te klooien en over te zoeken op het internet, maar ik kom er niet uit. Ik vind het raar dat het soms wel werkt, en soms niet. (In andere browsers werkt het altijd).

De fout doet zich voor op safari op de mac, geen idee hoe het met de windows safari zit.

edit:

De fout doet zich schijnbaar alleen voor wanneer een plugin (iBrowser) niet goed geladen wordt. Als ik deze plugin uitschakel dan werkt het als een zonnetje, maar anders werkt het niet helemaal goed.

Maar... ik heb deze plugin wel nodig, dus tips zijn alsnog welkom.

edit 2:

Hier kan een slotje op, na nog eens goed gekeken te hebben zaten er twee plugins in die schijnbaar niet gebruikt werden, deze er uit geklapt en het werkt nu.

[ Voor 8% gewijzigd door ZpAz op 25-09-2008 20:42 ]

Tweakers Time Machine Browser Extension | Chrome : Firefox