2009-11-04 5 views
0

Je crée iframe avec designMode = on.iframe designMode dans firefox

Quand j'ouvre le site Web dans Internet Explorer et déplacer le curseur de la souris sur iframe, le curseur de la souris se transforme en texte-curseur (grande lettre I).

Mais quand j'ouvre le site Web dans Firefox, le corsur ne change pas et reste le curseur flèche points.

Comment réparer cela?

<script language="javascript" type="text/javascript"> 
     designer('content'); 

     function designer(editor) { 
      var browser = navigator.userAgent.toLowerCase(); 
      isIE = (browser.indexOf("msie") != -1); 

      document.writeln('<iframe id="' + editor + '" width="600px" height="600px"></iframe>'); 


      var edit = document.getElementById(editor).contentWindow.document;         
      edit.designMode = "On"; 

      if (!isIE) { 
       document.getElementById(content).contentDocument.designMode = "on"; 
      } 
     } 

    </script> 

Répondre

1

Peut-être que this page aidera?

+1

pas vraiment .... – samuel

+0

Pourquoi pas? Il devrait vous dire tout ce dont vous avez besoin. –

0
 
Try CSS, that should switch the cursor for you. 

iframe{cursor:crosshair} //all iframes on page 
or 
#content{cursor:crosshair} //just the element with the id "content" 

Question? où est la variable contenu défini dans l'appel: document.getElementById (content) .contentDocument.designMode = "on";

Voulez-vous dire éditeur comme dans: var edit = document.getElementById (editor) .contentWindow.document;

D'accord, je vois votre problème, lien vers http://devedge-temp.mozilla.org/viewsource/2003/midas/01/example2-index.html a le même problème et c'est la façon dont Mozilla.

+0

Avez-vous essayé cela vous-même? Ne fonctionne pas – samuel

0

Votre ligne:

if (!isIE) { 
    document.getElementById(content).contentDocument.designMode = "on"; 
} 

Devrait se lire presque certainement:

if (!isIE) { 
    document.getElementById(editor).contentWindow.document = "on"; 
} 

Comme vous vous demandez signifie navigateur non-IE pour trouver un élément avec id null, plutôt que d'un élément avec id 'content'.

Cependant, cela ne vous obtenez un caret texte dans votre IFrame, même si elle ne le rendre modifiable.

Le mieux que je pouvais trouver était:

document.getElementById(editor).contentWindow.document.style.cursor = "text"; 

qui transforme le curseur en caret sur la première ligne du iFrame (ie en haut), sans doute parce que c'est le seul bit modifiable à ce moment.

+0

oui, seulement la première ligne. je en ai besoin de travailler pour toutes les lignes ... – samuel

+0

Ensuite, vous aurez besoin soit de fournir plus dans le IFrame pour le remplir, ou se contenter du fait que ce n'est pas comment fonctionne Firefox. –

0

Vous devez définir cette propriété lorsque l'iframe loads.

var edit = document.getElementById(editor).contentWindow.document; 

edit.addEventListener("load", function() { 
    edit.designMode = "On"; 
}, false); 
Questions connexes