2009-10-20 9 views
0

L'erreur que je reçois est: incompatibilité de type: 'feuilles de style'Incompatibilité de type Dictionnaire dans VBScript

Stylesheets est défini comme:

sub stylesheets(collection) 
    for each key in collection.Keys 
     response.write(stylesheet(key, collection.Item(key))) 
    next 
end sub 

' returns a link tag for each object in the collection 
function stylesheet(asset, media_type) 
    if (media_type="") then 
     media_type="screen" 
    end if 
    return "<link href=""" & asset_url(asset) & """ type=""text/css"" media=""" _ 
     & media_type & """ />" 
end function 

Et il est appelé en tant que tel:

<% stylesheets(site_stylesheets) %> 

Où site_stylesheets a été définie comme:

' stylesheets is a collection of the stylesheets to be included on all pages 
Set site_stylesheets = CreateObject("Scripting.Dictionary") 
site_stylesheets.Add "css/endoworks.css", "screen" 

Cela fait longtemps que je n'ai pas fait de VBScript. J'apprécierais vraiment toute aide.

Répondre

0

j'ai fini juste de placer la logique de boucle de stylesheets dans la sous header [routine]. Cela fonctionne bien maintenant.

@ Tester101: J'ai essayé vos suggestions, mais elles n'ont pas résolu le problème. Edit: J'ai effectivement découvert que j'avais un argument stylesheets dans le sous-programme header qui est l'endroit où le sous-programme stylesheets a été appelé. Donc, il essayait d'exécuter nothing avec un argument de site_stylesheets. Je ne peux pas croire que j'ai raté ça.

0

Essayez de supprimer la parenthèse lors de l'appel des feuilles de style. voir this question pour plus d'informations. Je ne pense pas que vous pouvez utiliser des parenthèses lors de l'appel d'un sous avec un seul paramètre.

Essayez cette

<% stylesheets site_stylesheets %> 

ou cette

<% call stylesheets(site_stylesheets) %> 
Questions connexes