2011-01-24 5 views
1

私はこのコードを持っています.BOLDのexeccommandはオペラの下で動作していません。誰も何らかのアイデアを持っているのですか?おかげexeccommandがoperaで動作していません

<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はボディのonloadでスタート機能を呼び出します。それは大丈夫firefoxと、すなわち、しかし、オペラで動作しません。 誰でもオペラのexeccommandの制限について知っていますか?ありがとう

+0

あなたのブラウザの盗聴はここでは失敗している可能性があります。 Operaは "Netscape"と "Microsoft Internet Explorer"のどちらでもありません.... navigator.appName == "Opera" Operaのため、Opera用のdesignModeをオンにしていません。 – miketaylr

答えて

2

引用符付きのスクリプトでは、変数「エディタ」にはブラウザのスニッフィングセクション内の値のみが与えられます。 Opera "Editor"では定義されていないため、 "Editor.execCommand()"を実行しようとするとエラーが発生します。

よりもむしろ

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; 
} 

あなたがスニッフィングブラウザをドロップすると役立ちます:)

+0

はい、それはproblenm、ありがとう:) – mmm

1

回答を与える前に私はあなたが何を求めているかを確かめたいと思います。このスクリプトは、NetscapeまたはIEをテストしています。 dragonflyコンソールを開くと、スクリプトの値を見つけることができます。私はWebkitでも難しいと感じています。

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

navigator.appNameは、WebKitブラウザでも「Netscape」と評価されます。/ – miketaylr

+0

hehe webkit shadowing自体。 – karlcow

0

IVEはオペラの新しいバージョンがNETSCAPEとして表示されていることを指摘し

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

希望のようなものを行う必要がありますあなたがnavigator.appNameでそれを求めるとき。私はいつものようにそうではなかったことを覚えている。以来、これは、ちょうど言っています。

関連する問題