Google Chrome Agustos 2014 ayi içerisinde yeni versiyon güncellemesi yaparak "37.0.2062.103" numarali versiyonunu bilgisayarlarimiza otomatik olarak kurdu. Fakat son çikan versiyon bug'lar ile birlikte geldi. Birçok yabanci forumda da Google Chrome'un son versiyonunun bug'larindan bahsedilen basliklari bulabilirsiniz.
Bizi etkileyen bug'i ise projemizde kullandigimiz Javascript popup tipi olan showModalDialog'larin Chrome'un son versiyonu ile çalismamasi oldu.Buna çözüm olarak Javascript window.showModalDialog yerine window.open kullanmaya karar verdik. Fakat projedeki tüm showModalDialog'lari elle replace etmek ve özelliklerini degistirmek yerine bir javascript ile javascript showModalDialog metodunu override ederek ve geriye window.open popup tipi döndürmesini saglayacak sekilde script gelistirip bunun master sayfamiza koydugumuzda birkaç satir ile showModalDialog içeren tüm sayfalarda window.open kullanilmasini saglamis olduk. Kodumuz;
Chrome showModalDialog not working solution and Javascript showModalDialog override method
<script type="text/javascript">
jQuery(document).ready(function () {
window.showModalDialog = function (url, title, options) {
options = options.replace('dialogWidth:', 'width=').replace('dialogHeight:', 'height=').replace(';help:no', '').replace('status:no', 'status=0').replace('scroll:auto', 'scrollbars=1').replace(';dialogHide:true', '').replace(';', ','); // showModalDialog verdigimiz özellikleri window.open'da uygun olacak sekilde repalce ettik.
return window.open(url, null, options); // Geriye window.open popup döndürdük.
}
});
</script>
COMMENTS