2011-01-10 20 views
0

Ich versuchte den Font-Dialog in VB6 mit einer Formular-App und es konnte Schriftdialog starten, aber wenn ich versuchte, das gleiche in Javascript zu tun, es scheiterte mit Ausnahme:Gemeinsame Schriftart Dialog (comdlg32.ocx) funktioniert nicht unter Windows 7 Aufruf von JavaScript in IE

der Vorgang nicht abschließen kann aufgrund 800a8000

in Zeile Aufruf Showfont() auf Fehler.

Hier ist mein HTML-Code: irgendwelche Ideen?

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

Antwort

0

Ich habe es nicht gelöst. Ich nahm Spudleys Rat und entfernte die Abhängigkeit von unserer Webanwendung. Stattdessen habe ich nur ein HTML-Formular mit einigen Schriftoptionen erstellt. Viel einfacher und es funktioniert gut.

1

In welchem ​​Sicherheitskontext läuft Ihr Code? Z.B. im IE selbst oder in einer Anwendung, die den Webbrowser steuert? Wenn es in IE ist, in welcher Sicherheitszone läuft Ihre Seite?

Die meisten COM-Objekte auf dem System werden aus Sicherheitsgründen nicht im IE ausgeführt.

(Nicht, dass es wahrscheinlich Angelegenheiten, aber du bist ein Semikolon in der ersten Zeile Ihrer Funktion fehlt)

+0

Ich bin unter einem vertrauenswürdigen Site-Kontext ausgeführt. – sproketboy

1

IE-Sicherheitsmodell hat sich auf einem langen Weg bewegt, da Code wie dies eine gute Idee angesehen wurde .

Wenn Sie Glück haben, können Sie möglicherweise eine funktionierende Sicherheitsfunktion in IE8 deaktivieren.