Aggiungere script e css alla master page tramite Feature
Con SharePoint 2010 è possibile aggiungere nell'header della pagina dei link a file JavaScript o CSS tramite una Feature.
Ecco l'esempio:
in questo caso ho aggiunto dei file JavaScript tramite riferimento al file.
Indirettamente posso aggiungere anche dei CSS inettando un blocco JavaScript che inserisce il riferimento al file css:
Vedi anche CustomAction Element (Custom Action)
Ecco l'esempio:
XML: Feature.xml
<?xml version="1.0" encoding="utf-8"?>
<Feature Id="F1B4D536-2FAC-49E1-B8BB-2A911CB3C317"
Title="Sgart - Add File to Header Page"
ActivateOnDefault="FALSE"
Description="Aggiunge file js e css alla master page"
ImageUrl="Sgart.Common/featureIcon.png"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="SgartHeaderFiles\Elements.xml" />
</ElementManifests>
</Feature>
XML: Elements.xml
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Sequence="1" Location="ScriptLink"
ScriptSrc="~sitecollection/_layouts/Sgart.Common/jquery-1.8.3.min.js"
/>
<CustomAction Sequence="12" Location="ScriptLink"
ScriptSrc="~sitecollection/_layouts/Sgart.Common/jquery.SPServices-0.7.2.min.js"
/>
<CustomAction Sequence="110" Location="ScriptLink"
ScriptSrc="~sitecollection/_layouts/Sgart.Common/jquery.dataTables.js"
/>
</Elements>
Indirettamente posso aggiungere anche dei CSS inettando un blocco JavaScript che inserisce il riferimento al file css:
XML
<CustomAction Sequence="2000" Location="ScriptLink"
ScriptBlock="document.write('& lt;link rel=\'stylesheet\' type=\'text/css\' href=\'~sitecollection/_layouts/Sgart.Common/jquery.dataTables.css\'& gt;& lt;/' + 'link& gt;');"
/>
Attenzione: va fatto l'encoding html dei caratteri maggiore e minore all'interno dell'attributo ScriptBlock
Notare il riferimento al palceholder ~sitecollection che automaticamente inserisce la url della site collection
Per SharePoint 2013 le url vanno modificate mettendo il 15 ad esempio: ~sitecollection/_layouts/15/Sgart.Common/jquery-1.8.3.min.js
Vedi anche CustomAction Element (Custom Action)