2011-01-10 9 views
0

フォームアプリケーションでVB6でフォントダイアログを試してみましたが、フォントダイアログを起動できましたが、それは例外で失敗しました:一般的なフォントダイアログ(comdlg32.ocx)がWindows 7でIEのJavaScriptからの呼び出しで動作しない

はShowFont()を呼び出すラインで800a8000

エラーのため操作を完了できませんでした。

ここに私のHTMLコードです:任意のアイデア?

<html> 
<head> 
<title>test</title> 
</head> 

<script> 

function doclick() { 
     var fontDlg = document.all.fontDlg 
    //var fontDlg = new ActiveXObject("MSComDlg.CommonDialog"); 

    /* 
     cdlCCRGBInit = 1; 
     cdlCCFullOpen = 2; 
     cdlCCPreventFullOpen = 4; 

     fontDlg.Flags = (cdlCCRGBInit | cdlCCFullOpen | cdlCCPreventFullOpen); 
     fontDlg.CancelError = false; 
     fontDlg.Min = 8; 
     fontDlg.Max = 72; 
     fontDlg.DialogTitle = "Change font settings"; 
     fontDlg.ShowFont(); 
     //fontDlg.ShowColor(); 
    */ 
    fontDlg.ShowFont(); 
} 

</script> 
<body> 

<input type=button onclick=doclick() value="click me"/> 

    <OBJECT id="fontDlg" style="LEFT: 224px; POSITION: absolute; TOP: 24px" classid="clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB" CODEBASE="http://activex.microsoft.com/controls/vb5/comdlg32.cab #Version=1,0,0,0"> 
     <PARAM NAME="_ExtentX" VALUE="847"> 
     <PARAM NAME="_ExtentY" VALUE="847"> 
     <PARAM NAME="_Version" VALUE="393216"> 
     <PARAM NAME="CancelError" VALUE="0"> 
     <PARAM NAME="Color" VALUE="0"> 
     <PARAM NAME="Copies" VALUE="1"> 
     <PARAM NAME="DefaultExt" VALUE=""> 
     <PARAM NAME="DialogTitle" VALUE=""> 
     <PARAM NAME="FileName" VALUE=""> 
     <PARAM NAME="Filter" VALUE=""> 
     <PARAM NAME="FilterIndex" VALUE="0"> 
     <PARAM NAME="Flags" VALUE="0"> 
     <PARAM NAME="FontBold" VALUE=""> 
     <PARAM NAME="FontItalic" VALUE=""> 
     <PARAM NAME="FontName" VALUE=""> 
     <PARAM NAME="FontSize" VALUE=""> 
     <PARAM NAME="FontStrikeThru" VALUE="0"> 
     <PARAM NAME="FontUnderLine" VALUE="0"> 
     <PARAM NAME="FromPage" VALUE="0"> 
     <PARAM NAME="HelpCommand" VALUE="0"> 
     <PARAM NAME="HelpContext" VALUE="0"> 
     <PARAM NAME="HelpFile" VALUE=""> 
     <PARAM NAME="HelpKey" VALUE=""> 
     <PARAM NAME="InitDir" VALUE=""> 
     <PARAM NAME="Max" VALUE="0"> 
     <PARAM NAME="Min" VALUE="0"> 
     <PARAM NAME="MaxFileSize" VALUE="260"> 
     <PARAM NAME="PrinterDefault" VALUE="1"> 
     <PARAM NAME="ToPage" VALUE="0"> 
     <PARAM NAME="Orientation" VALUE="1"> 
    </OBJECT> 
</body> 
</html> 

答えて

0

私はそれを解決しませんでした。私はSpudleyのアドバイスを受け、Webアプリケーションからの依存関係を取り除いた。代わりに、私はちょうどいくつかのフォントオプションでHTMLフォームを作った。ずっと簡単で、うまく動作します。

1

あなたのコードはどのセキュリティコンテキストで実行されていますか?例えば。 IE自体の内部、またはWebブラウザコントロールをホストするアプリケーション?それがIEにある場合、あなたのページはどのセキュリティゾーンで動作していますか?

セキュリティ上の理由から、システム上のほとんどのCOMオブジェクトはIE内で実行されません。このようなコードは、良いアイデアと考えられていたので、IEのセキュリティモデルは、長い道のりに移動した

+0

私は信頼済みサイトのコンテキストで実行しています。 – sproketboy

1

(その可能性が高い事項がありますが、あなたの関数の最初の行にセミコロンが不足していることません) 。

IE8でセキュリティ機能が無効になっていると、動作している可能性があります。

関連する問題