Archives de Catégorie: javascript

CFWindow + DatePicker + IE …

Salut,
Je viens de tomber sur un petit problème et comme d’habitude je partage mon problème ainsi que la solution que j’ai trouvé.

L’origine de mon problème est la suivante:
Je créé une fenêtre avec cfwindow et à l’intérieur de celle-ci ce trouve plusieurs control dont certains
doivent recevoir

setTimeout(function(){
$(« #startDate »).datepicker({ dateFormat: « yy-mm-dd » });
},500);

On peut voir ici que pour aciver le datepicker j’ai du faire appel à la fonction javascript: setTimeout. la raison est simple l’appel à cette page via CFWindow est un appel ajax donc asynchrone, et pour être sur que le control soit bien de type datepicker.

Si je laisse comme ça le calendrier apparaitra derrière le fenêtre CFWindow donc j’ai ajouté ceci avant l’HTML

<style>
div.ui-datepicker {
z-index: 9999 !important;
}
</style>

Houra!!!!! Ca fonctionne avec Firefox mais pas avec IE (je ne le considère pas comme un browser).

Que faire …

He bien grace au site css-tricks j’ai trouvé la solution.

il faut ajouter ce code dans le setTimeout après la création du datepicker.
$(function() {
var zIndexNumber = 1000;
// Put your target element(s) in the selector below!
$(« div »).each(function() {
$(this).css(‘zIndex’, zIndexNumber);
zIndexNumber += 1;
});

La version du code complet avec le style et le JQuery qui va avec

<style>
div.ui-datepicker {
z-index: 9999 !important;
}
</style>

setTimeout(function(){
$(« #startDate »).datepicker({ dateFormat: « yy-mm-dd » });
$(function() {
var zIndexNumber = 1000;
// Put your target element(s) in the selector below!
$(« div »).each(function() {
$(this).css(‘zIndex’, zIndexNumber);
zIndexNumber += 1;
});
},500);

Référence
http://css-tricks.com/snippets/jquery/fixing-ie-z-index/ il propose des solutions sur les CSS.

Ouvrir un lien dans une autre fenêtre depuis une liste de liens

Tous d’abord je tiens à vous souhaiter une bonne année 2011. Cela fait très longtemps que je n’ai pas écris d’article sur mon blog mais les projets, la famille puis la fatigue ont eut raison de mon courage ;-). Une de mes résolutions est d’être plus présent sur mon blog. Ceci étant dit passons au sujet de cet article.

Un truc qui m’a toujours ennuyé, c’est que dans une liste de liens il n’est pas possible par défaut de choisir si un lien est ouvert dans une nouvelle fenêtre ou dans la fenêtre courante. Plusieurs possibilités s’offre à vous, moi j’ai choisi la version la plus simple qui est de placer un javascript dans la page et hop le tour est joué.

Alors comment faire. Via l’application sharepoint Designer ouvrez la page AllItems.aspx de votre liste et ajoutez ce petit script à la fin de votre code dans un asp:content déja existant pour qu’il soit exécuté en dernier sur la page.

<script type="text/javascript">
var thisDomain = window.location.hostname;
var theLinks = document.links;
for (i=0; i < theLinks.length; i++)
{
var thisLink = theLinks(i);
if (thisLink.href.indexOf(thisDomain) == -1 && thisLink.href.indexOf("javascript") == -1)
{
thisLink.target = "_blank";
}
}
</script>

et voila le tour est joué, maintenant tout les liens qui ne pointent pas sur le domaine sont ouvert dans une autre fenêtre. J’espère que ce petit bout de code vous aidera.

A bientôt 😉

%d blogueurs aiment cette page :