J'ai le script suivant qui fonctionne bien dans Firefox et Chrome (pas sûr d'autres navigateurs), mais cela ne fonctionne pas du tout dans IE. Il ouvre essentiellement une popup qui ajoute un div pour mettre en évidence un élément dans l'ouvre-fenêtre. Je veux qu'il fonctionne sur plusieurs pages sur le même site, donc je ne voulais pas ajouter une fonction pour créer la div dans la fenêtre principale (window.opener). Désolé, je ne pouvais pas poster une démo de travail - window.opener ne fonctionne pas dans une corbeille.Problèmes avec IE et l'ajout à window.opener
<button>Open popup</button>
<script type="text/javascript">
$(document).ready(function(){
$(':button').click(function(){
var highlight = "" +
"<button>Click to Add Highlight</button>" +
"<scr"+"ipt type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js'></scr"+"ipt>" +
" <scr"+"ipt type='text/javascript'>" +
" $(':button').click(function(){" +
" $('<div/>', {" +
" 'class': 'highlight'," +
" css: {" +
" position: 'absolute'," +
" height: '50px'," +
" width: '50px'," +
" left: '200px'," +
" top: '200px'," +
" background: '#fff'," +
" opacity: 0.5," +
" zIndex: 99" +
" }" +
" }).appendTo($(window.opener.document.body));" +
" })" +
" </scr"+"ipt>";
var w = window.open('','highlighter','toolbar=0,location=0,status=0,width=200,height=100,scrollbars=1,resizable=1');
w.document.write(highlight);
w.document.close();
})
})
</script>
J'ai également essayé d'utiliser appendChild sans succès. J'ai finalement trouvé cette méthode pour fonctionner, mais c'est une solution horrible et fait clignoter la page.
if ($.browser.msie){
var d = '<div class="highlight" style="position:absolute;height:50px;' +
'width:50px;left:200px;top:200px;background:#fff;opacity:0.5;' +
'filter:alpha(opacity=50);zIndex:99;"></div>';
window.opener.document.body.innerHTML = window.opener.document.body.innerHTML + d;
}
Quelqu'un connaît une meilleure solution?
Que diable est avec la concaténation de chaînes supplémentaires, comme '"
Si vous ne cassez pas le tag de script, le navigateur le rend – Mottie