2013-04-18 128 views
5

这是我的javascript函数来打开一个jQuery对话框。如何隐藏IE的一部分javascript

('#dialog').append(iframe).appendTo("body").dialog({ 
      autoOpen: false, 
      modal: true, 
      resizable: false, 
      show: 'slide',   
      width: 800,  
      height: 700,   
     close: function() {   
    } 
});    
$('#dialog_click').click("callback",function() {    
    $('#dialog').dialog('open');     
    return false; 
}); 

如何从IE中隐藏部分show: 'slide,

+0

'window.navigator.userAgent' – 2013-04-18 11:45:58

+2

你的问题似乎是一个第二代的问题。例如,真正的问题是您在IE中使用“幻灯片”时遇到问题,这就是您要求在IE中删除它的原因。如果你问,你可能可以解决原来的问题。 – Fenton

+0

您确定要这么做吗?这是因为旧版本IE中的特定问题吗?你测试了哪些版本?你有没有在IE9和IE10中试过它?他们实际上是相当不错的浏览器(特别是IE10)。 – Spudley

回答

2
var options = { 
      autoOpen: false, 
      modal: true, 
      resizable: false,  
      width: 800,  
      height: 700,   
     close: function() {   
    } 
}; 
if (! $.browser.msie){ 
    options ['show'] = 'slide'; 
} 

$('#dialog').append(iframe).appendTo("body").dialog(options); 
+0

感谢您的重播。它适用于我,太棒了 – Mohamed

+0

我很高兴能帮上忙。 – Hilmi

+0

请注意:jQuery中的'.browser'功能已被弃用,并且已从最新版本中完全删除。不推荐。 (实际上,浏览器检测通常不推荐用于大多数用例) – Spudley

2

试试这个

if (! $.browser.msie){ 
    $("#dialog").dialog("option", "show", "slide") 
} 
+0

请注意:jQuery中的'.browser'功能已被弃用,并且已从完整版本中删除。不推荐。 (实际上,浏览器检测一般不推荐用于大多数用例) – Spudley

2
$('#dialog').append(iframe).appendTo("body").dialog({ 
      autoOpen: false, 
      modal: true, 
      resizable: false,  
      width: 800,  
      height: 700,   
     close: function() {   
    } 
}); 

if(!$.browser.msie) { 
    $("#dialog").dialog("option", "show", "slide"); 
} 
+0

我试过这个,但在我的情况下它不工作。当我添加这个对话框时,对话框没有打开。代码 – Mohamed

+0

是否存在其他问题在Firebug /浏览器控制台中是否有错误? –

+0

语法错误:遗漏}属性列表后我得到这个错误 – Mohamed

0

有你可以做几件事。

首先有有条件的意见,即

<!--[if !IE ]> 
    <script> 
     $('#dialog').append(iframe).appendTo("body").dialog({ 
     autoOpen: false, 
     modal: true, 
     resizable: false, 
     show: 'slide',   
     width: 800,  
     height: 700,   
     close: function() {   
     } 
     });    
     $('#dialog_click').click("callback",function() {    
     $('#dialog').dialog('open');     
     return false; 
     }); 
    </script> 
<![endif]--> 

或者你可以检查jQuery的浏览器变量,因为其他人都指向。

此外,如果你要这样,你真的要针对老版本的IE,你可以使用一些特定的功能,它(像的attachEvent)

2

jQuery有去除jQuery.browser.msie支持版本> = 1.9

所以

var opts = { 
    autoOpen : false, 
    modal : true, 
    resizable : false, 
    show : 'slide', 
    width : 800, 
    height : 700, 
    close : function() { 
    } 
}; 
if (!/msie/.test(window.navigator.userAgent)) { 
    opts.show = 'slide'; 
} 

('#dialog').append(iframe).appendTo("body").dialog(opts); 
$('#dialog_click').click("callback", function() { 
    $('#dialog').dialog('open'); 
    return false; 
}); 
2

有几种变通办法此(对于整个脚本条件注释,后来改变属性等),但没有人发布了一个个解决方案在确实是你问:只在IE除javascript的一部分。

然后看看这个:

('#dialog').append(iframe).appendTo("body").dialog({ 
      autoOpen: false, 
      modal: true, 
      resizable: false, 

     /*@cc_on @*/ 
     /*@if (true) 

     @else @*/ 
      show: 'slide',   
     /*@end @*/ 

      width: 800,  
      height: 700,   
     close: function() {   
    } 
});    
$('#dialog_click').click("callback",function() {    
    $('#dialog').dialog('open');     
    return false; 
}); 

IE将不包括show: 'slide',,而non-IE浏览器将无法读取Conditional Compilation Statements,所以病情会落在(未注释)其他部分。

了解更多关于Conditional Compilation Statements