Het scriptfoutbericht "Type komt niet overeen" van VBScript wordt in Internet Explorer weergegeven nadat u de cumulatieve beveiligingsupdate 974455 hebt geïnstalleerd

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 976949 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Inleiding

Cumulatieve beveiligingsupdate voor Internet Explorer 974455 (beschreven in beveiligingsbulletinMS09-054) heeft aanvullende "Type"-veiligheidscontroles in verschillende methoden geïntroduceerd om gesignaleerde beveiligingsproblemen op te lossen. In bepaalde gevallen kunnen deze nieuwe type-veiligheidscontroles leiden tot scriptfoutberichten "Type komt niet overeen" op webpagina's die VBScript gebruiken of op webpagina's die een combinatie van VBScript en JavaScript gebruiken.

Klik op het volgende artikelnummer in de Microsoft Knowledge Base voor meer informatie over MS09-054:
974455 MS09-054: Cumulatieve beveiligingsupdate voor Internet Explorer

Symptomen

Op webpagina's die VBScript als de scripttaal aan clientzijde gebruiken en de methode showModalDialog() of de methode showModelessDialog() gebruiken, kan het scriptfoutbericht "Type komt niet overeen" optreden. Microsoft heeft de volgende drie gevallen gesignaleerd waarin het scriptfoutbericht "Type komt niet overeen" mogelijk wordt gegenereerd:
  • showModalDialog()
    In het eerste geval wordt een Array()-waarde als een parameter doorgegeven aan de methode showModalDialog() in VBScript. De methode showModalDialog() ondersteunt één verplicht argument (sURL) en twee optionele argumenten (vArguments en sFeatures). De parameter vArguments is een parameter van het type VARIANT waarin de argumenten zijn opgegeven die moeten worden gebruikt bij het weergeven van het document. Als een ontwikkelaar besluit om een Array() rechtstreeks aan de optionele parameter vArguments door te geven, treedt het scriptfoutbericht "Type komt niet overeen" op.

    Ga voor meer informatie over de methode showModalDialog naar de volgende Microsoft MSDN-website:
    http://msdn.microsoft.com/nl-nl/library/ms536759(VS.85).aspx
  • showModelessDialog()
    In het tweede geval wordt een Array()-waarde als een parameter doorgegeven aan de methode showModelessDialog() in VBScript. De methode showModelessDialog() ondersteunt één verplicht argument (sURL) en twee optionele argumenten (vArguments en sFeatures). De parameter vArguments is een parameter van het type VARIANT waarin de argumenten zijn opgegeven die moeten worden gebruikt bij het weergeven van het document. Als een ontwikkelaar besluit om een Array() rechtstreeks aan de optionele parameter vArguments door te geven, treedt het scriptfoutbericht "Type komt niet overeen" op.

    Ga voor meer informatie over de methode showModelessDialog naar de volgende Microsoft MSDN-website:
    http://msdn.microsoft.com/en-us/library/ms536761(VS.85).aspx/PathLink>
  • returnValue
    In het derde geval is de expliciete instelling van de eigenschap returnValue van een modaal dialoogvenster betrokken. De eigenschap returnValue is een lees-/schrijfeigenschap die geen standaardwaarde heeft. Volgens documentatie op MSDN is de eigenschap returnValue alleen van toepassing op vensters die zijn gemaakt met de methode showModalDialog(). Als een ontwikkelaar besluit om de eigenschap returnValue van een modaal dialoogvenster in te stellen op een Array()-waarde in VBScript, treedt het scriptfoutbericht "Type komt niet overeen" op.

    Ga voor meer informatie over de eigenschap returnValue naar de volgende Microsoft MSDN-website:
    http://msdn.microsoft.com/nl-nl/library/ms534371(VS.85).aspx
Microsoft heeft nog geen scriptfoutberichten "Type komt niet overeen" gesignaleerd die optreden naar aanleiding van cumulatieve beveiligingsupdate 974455 op webpagina's die JavaScript als hun enige scripttaal aan clientzijde gebruiken. Alleen webpagina's die gebruikmaken van de methode showModalDialog(), de methode showModelessDialog() of de eigenschap returnValue binnen VBScript lijken last te hebben van dit probleem. Als de webpagina een combinatie van VBScript en JavaScript bevat, kan deze last hebben van dit probleem als de webpagina de methoden of eigenschappen die eerder zijn besproken binnen VBScript gebruikt of als de webpagina het VBArray-object gebruikt. Gebruik van het VBArray-object komt niet vaak voor en gevallen waarin VBArray betrokken is, komen niet aan de orde in dit Knowledge Base-artikel.

Oorzaak

Cumulatieve beveiligingsupdate voor Internet Explorer MS09-054 is uitgebracht om gesignaleerde beveiligingsproblemen in Internet Explorer op te lossen. Als onderdeel van de cumulatieve beveiligingsupdate zijn door Internet Explorer nieuwe controles geïntroduceerd ter voorkoming van onbedoelde casting van parameters van het type VARIANT in gevaarlijke gegevenssoorten. De aanvullende beveiligingscontroles vormen aanvullende beveiligingsbeperkingen op parameters van het type VARIANT die worden doorgegeven als onderdeel van door de gebruiker beheerde variabelen om de gebruiker te beschermen tegen allerlei soorten aanvallen. Deze aanvullende controles kunnen het legitiem openen van webpagina's waarbij gebruik wordt gemaakt van VARIANT-gegevenssoorten hinderen.

Oplossing

U kunt dit probleem oplossen door update 976749 te installeren nadat u beveiligingsupdate 974455 hebt geïnstalleerd. Klik voor meer informatie over dit probleem op het volgende artikelnummer, zodat het desbetreffende Microsoft Knowledge Base-artikel wordt weergegeven:
976749 Er is een update beschikbaar voor Internet Explorer die problemen oplost die optreden nadat u beveiligingsupdate 974455 (MS09-054) toepast

Belangrijk Installeer update 976749 niet als u beveiligingsupdate 974455 niet hebt geïnstalleerd. Als u update 976749 installeert zonder dat u eerst beveiligingsupdate 974455 installeert, werkt Internet Explorer mogelijk niet juist. Als dit gebeurt, verwijdert u update 976749, installeert u beveiligingsupdate 974455 en installeert u update 976749 opnieuw.

Workaround

Wij raden aan dat u de cumulatieve beveiligingsupdate 974455 blijft toepassen en dat u update 976749 installeert als u de symptomen ervaart die in dit artikel worden beschreven. Klanten die beslissen om de cumulatieve beveiligingsupdate te verwijderen, brengen hun systeem in gevaar.

Voor de eerste twee scenario's die in de sectie "Symptomen" worden beschreven, kunt u een methode uitvoeren als u de beveiligingsupdate 974455 niet wilt installeren. U kunt het probleem omzeilen door de beschikbare Array() specifiek in een VBScript-variabele te declareren. Arrays kunnen worden doorgegeven aan de methode showModalDialog() of de methode showModelessDialog() zonder de scriptfout "Type komt niet overeen".

Het volgende VBScript veroorzaakt bijvoorbeeld de scriptfout "Type komt niet overeen".
// TYPE MISMATCH
vReturn = window.showModalDialog("http://www.contoso.com", Array(1,2,3,4,5,6,7))
Het volgende VBScript geeft een array door aan de methode showModalDialog() of de methode showModelessDialog() zonder de scriptfout "Type komt niet overeen".
// NO TYPE MISMATCH ERROR
Dim myArray
myArray=Array(1,2,3,4,5,6,7)
vReturn = window.showModalDialog("http://www.contoso.com", myArray)
Voor het derde scenario dat eerder werd besproken, kunt u een methode toepassen als u de beveiligingsupdate 974455 niet wilt installeren. U kunt het probleem omzeilen in scenario's waar een Array()-waarde van een enkele dimensie wordt doorgegeven naar de eigenschap returnValue door de VBScript-functies Join en Split te gebruiken. Op deze manier kunt u de Array()-waarden doorgeven aan de eigenschap returnValue.

Het volgende VBScript genereert bijvoorbeeld de scriptfout "Type komt niet overeen".

// TYPE MISMATCH
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3
Window.returnvalue = arrayItems
Als u de VBScript-functies Join en Split gebruikt, kunt u de eigenschap returnValue instellen zonder de scriptfout "Type komt niet overeen" te genereren.

// NO TYPE MISMATCH ERROR
Dim arrayItems
arrayItems(0) = 1
arrayItems(1) = 2
arrayItems(2) = 3

Dim arrString = Join(arrayItems, ";")
Window.returnvalue = arrString
Dim strTemp = window.showModalDialog(??)
Dim arrayItems = Split(strTemp, ";")

Voor het derde scenario dat eerder is besproken, waar multidimensionale Array()-waarden of Array()-waarden waarvan voorwerpen zijn doorgegeven aan de eigenschap returnValue kunt u een methode toepassen als u de beveiligingsupdate 974455 niet wilt installeren. U kunt het probleem in dit scenario omzeilen door een JavaScript-functie te gebruiken om de eigenschap returnValue in te stellen. Deze JavaScript-functie is beschikbaar voor VBScript-subroutines en -functies. Elke waarde voor de returnValue-eigenschap die wordt ingesteld door een JavaScript-functie is beschikbaar voor VBScript.

Het volgende VBScript genereert bijvoorbeeld de scriptfout "Type komt niet overeen".
// TYPE MISMATCH
<script LANGUAGE=vbscript>
Option Explicit
Sub Window_OnLoad
Dim abc(1,2,3)
Window.ReturnValue = abc
End Sub
</script>
Als u een JavaScript-functie samen met een bestaand VBScript gebruikt, kunt u de eigenschap returnValue instellen zonder de scriptfout "Type komt niet overeen" te genereren.
// NO TYPE MISMATCH ERROR
<script Language=JavaScript>
function setReturnValue(){
var returnValueArray= new Array();
returnValueArray[0] = 1;
returnValueArray[1] = 2;
returnValueArray[2] = 3;
window.returnValue = returnValueArray;
}
</script>

<script LANGUAGE=vbscript??
Option Explicit

Sub Window_OnLoad
setReturnValue()
msgbox window.returnValue
End Sub
</script>

Status

Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.

Eigenschappen

Artikel ID: 976949 - Laatste beoordeling: donderdag 3 december 2009 - Wijziging: 3.1
De informatie in dit artikel is van toepassing op:
  • Windows Internet Explorer 8 op de volgende platformen
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Windows Internet Explorer 7 op de volgende platformen
    • Windows Server 2008 Datacenter without Hyper-V
    • Windows Server 2008 Enterprise without Hyper-V
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Standard without Hyper-V
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
    • Windows Server 2008 R2 Datacenter
    • Windows Server 2008 R2 Enterprise
    • Windows Server 2008 R2 Standard
    • Windows Web Server 2008 R2
    • Windows 7 Enterprise
    • Windows 7 Home Basic
    • Windows 7 Home Premium
    • Windows 7 Professional
    • Windows 7 Ultimate
    • Windows Vista Business
    • Windows Vista Enterprise
    • Windows Vista Home Basic
    • Windows Vista Home Premium
    • Windows Vista Ultimate
    • Windows Vista Enterprise 64-bit edition
    • Windows Vista Home Basic 64-bit edition
    • Windows Vista Home Premium 64-bit edition
    • Windows Vista Ultimate 64-bit edition
    • Windows Vista Business 64-bit edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 6.0 op de volgende platformen
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Internet Explorer 6.0 SP1 op de volgende platformen
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows® 2000 Server
  • Microsoft Internet Explorer 5.01 Service Pack 4 op de volgende platformen
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows® 2000 Server
Trefwoorden: 
kbcode kbtshoot kbbug kbexpertiseinter kbsecurity kbsecvulnerability kbsurveynew KB976949

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com