2011-01-10 5 views
0

Я пробовал диалог шрифта в VB6 с помощью приложения формы, и он мог запускать диалог шрифта, но когда я пытался сделать то же самое в javascript, он не исключением:Общий диалог шрифтов (comdlg32.ocx), не работающий в Windows 7, вызывающий из JavaScript в IE

не удалось завершить операцию из-за ошибки 800a8000

на линии вызова ShowFont().

Адрес: html код: any ideas?

<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 и удалил зависимость из нашего веб-приложения. Вместо этого я просто создал HTML-форму с некоторыми вариантами шрифта. Гораздо проще, и все отлично.

1

В каком контексте безопасности работает ваш код? Например. внутри самого IE или приложения, на котором установлен элемент управления веб-браузером? Если это в IE, какая зона безопасности находится на вашей странице?

Большинство объектов COM в системе не могут работать внутри IE по соображениям безопасности.

(Не то, что это вероятно, имеет значение, но вы пропустили точку с запятой в первой строке функции)

+0

Я работаю под доверительным контекстом сайта. – sproketboy

1

модель безопасности в IE переместилась на длинном пути, так как код, как это считалось хорошей идеей ,

Если вам повезет, вы можете заставить его работать, отключив загрузку функций безопасности в IE8.

 Смежные вопросы

  • Нет связанных вопросов^_^