Question

Je possède ce code, ExecCommand pour BOLD, et il ne fonctionne pas sous l'opéra. Quelqu'un at-il une idée pourquoi? merci

  <script type="text/javascript">

 function SetToBold () {
        Editor.execCommand ('bold', false, null);
    }


 function start() {

    frames.iView.document.designMode = "On";

    var myIFrame = document.getElementById("iView");
    browser = navigator.appName;


    if (document.all) {  //IE
      var iframe_window = window.frames["iView"];
      iframe_window.document.body.focus();
    }
    else {  //Firefox
      field = myIFrame.contentWindow.document.getElementsByTagName("body")[0];
      setTimeout("field.focus()",250);
    }   


    if (browser == "Netscape") {  
      Editor = myIFrame.contentWindow.document;
      Editor.designMode = 'On';
      Editor.body.contentEditable = 'true';
    }

    else if(browser == "Microsoft Internet Explorer")  {  
      frames['iView'].document.designMode='On';
      Editor = frames['iView'].document;
    }


}

i appelez fonction de démarrage avec le corps onload. il est ok Firefox et IE, mais le travail ne marche pas dans l'opéra. tout le monde connaît certaines restrictions de ExecCommand dans l'opéra? merci

Était-ce utile?

La solution

Dans le script cité, la variable « Editor » est donnée une valeur seulement à l'intérieur de la section renifler navigateur. Dans Opera « Editor » sera indéfini et donc essayer de faire « Editor.execCommand () » sera une erreur.

Au lieu de

if (browser == "Netscape") {  
  Editor = myIFrame.contentWindow.document;
  Editor.designMode = 'On';
  Editor.body.co`enter code here`ntentEditable = 'true';
}

else if(browser == "Microsoft Internet Explorer")  {  
  frames['iView'].document.designMode='On';
  Editor = frames['iView'].document;
}

vous devriez laisser tomber le renifler navigateur et faire quelque chose comme

if ( myIFrame && myIFrame.contentWindow ) {  
  Editor = myIFrame.contentWindow.document;
  Editor.designMode = 'On';
}
else if( frames['iView'] )  {  
  frames['iView'].document.designMode='On';
  Editor = frames['iView'].document;
}

Hope qui aide:)

Autres conseils

avant de donner une réponse que je veux être sûr de ce que vous demandez. Le script teste Netscape ou Internet Explorer. Ouverture console libellule , vous pouvez découvrir les valeurs de votre script. J'ai le sentiment que vous aurez des difficultés avec Webkit aussi.

>>> var browser = navigator.appName
undefined
>>> browser
"Opera"

ive a noté que les nouvelles versions de l'opéra apparaissent comme NETSCAPE lorsque vous demandez avec navigator.appName. Je me souviens que c'était pas toujours parce que je suis aussi quelques anciens « si » autour de ma source où je le nom régulier. ne peux pas dire depuis quand cela est, juste dire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top