解决JQuery AutoComplete在IE9下出错的问题

JQuery AutoComplete插件在IE9下会因为bgiframe的问题出错

解决方法:

引入新的bgiframe

 

jquery.bgiframe-2.1.2.js:

 

/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Version 2.1.2
 */

(function($){

$.fn.bgiframe = ($.browser.msie && /msie 6\.0/i.test(navigator.userAgent) ? function(s) {
    s = $.extend({
        top     : 'auto', // auto == .currentStyle.borderTopWidth
        left    : 'auto', // auto == .currentStyle.borderLeftWidth
        width   : 'auto', // auto == offsetWidth
        height  : 'auto', // auto == offsetHeight
        opacity : true,
        src     : 'javascript:false;'
    }, s);
    var html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
                   'style="display:block;position:absolute;z-index:-1;'+
                       (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
                       'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
                       'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
                       'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
                       'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
                '"/>';
    return this.each(function() {
        if ( $(this).children('iframe.bgiframe').length === 0 )
            this.insertBefore( document.createElement(html), this.firstChild );
    });
} : function() { return this; });

// old alias
$.fn.bgIframe = $.fn.bgiframe;

function prop(n) {
    return n && n.constructor === Number ? n + 'px' : n;
}

})(jQuery);

 

 

时间: 2024-09-20 13:40:59

解决JQuery AutoComplete在IE9下出错的问题的相关文章

解决jquery操作checkbox火狐下第二次无法勾选问题

 在工作中使用jquery操作checkbox,进行全选.反选,现在的问题是火狐下第二次无法勾选问题,在下面有个详细的解答,感兴趣的朋友可以参考下 最近在工作中使用jquery操作checkbox,使用下面方法进行全选.反选:  复制代码 代码如下: var ischecked=allCheckObj.is(':checked');  ischecked?checksObj.attr('checked',true):checksObj.attr('checked',false);    调试时在

解决jquery操作checkbox火狐下第二次无法勾选问题_jquery

最近在工作中使用jquery操作checkbox,使用下面方法进行全选.反选: 复制代码 代码如下: var ischecked=allCheckObj.is(':checked'); ischecked?checksObj.attr('checked',true):checksObj.attr('checked',false); 调试时在ie没有问题,考虑到兼容性,试试了firefox,遇到了问题.于是乎,做了如下实验: 复选框绑定了click事件,点一次选中,再点击取消选中,依次类推.这个功

用jQuery获取IE9下拉框默认值问题探讨

本文与大家详细探讨下用jQuery获取IE9下拉框默认值的问题,如果下拉框没有空默认值会怎么样等一系列问题,感兴趣的朋友可以参考下哈,希望对大家有所帮助   在IE 9.0.8112.16421 下,如果下拉框没有空默认值, 在不对它的option设置select属性情况下,用jquery的 $("#id").find("option:selected").val();方法 将无法取到他的默认值.而在FireFox.chrome.其他IE版本包括IE9的其他小版本下

jquery validate在ie8下的bug解决方法_jquery

项目用到了jquery的表单校验插件validate,之前一直都只是做很简单的校验,没有做过稍微复杂的应用,近期项目对应用的要求提高了,一个页面中有两个提交按钮,然后表单校验是绑定在按钮的点击事件上的,如下.  然后很自然的就用到了插件的valid()函数:  这个确实能达到相要的效果,但是在ie8下竟然有问题,valid()方法始终返回false,而且所有的字段都会被当成必填字段校验,纠结了好久,因为jquery的插件代码都很复杂,所以刚开始看特别费劲,后来一步一步排查,找到问题了,问题出在a

利用jquery.autocomplete自动完成功能实现百度搜索下拉功能

利用jquery.autocomplete自动完成功能实现百度搜索下拉功能 --> <script language="网页特效" src="jquery.autocomplete.js"></script> <script> $().ready(function() {  $("#borough_name").autocomplete("z.php教程", {   minchars:

JQuery.validate在ie8下不支持的快速解决方法_jquery

一.在ie8下回有问题的代码 1.JQuery.validate验证框架是通过页面form表单提交验证<input/>标签中输入是否符合自己的规则的 <form id="cardTypeFrm"> <table width="100%" cellspacing="0" cellpadding="0" class="table_pzh"> <tbody> <

jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误_jquery

jquery.bgiframe.js在IE9下的错误 复制代码 代码如下: SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) jquery.bgiframe.js, 行8 字符976 错误代码 复制代码 代码如下: 1 {if(!$('iframe.bgiframe',this)[0])this.insertBefore(document.createElement(html),this.firstChild);});};})(jQuery

PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能_php实例

我们在很多项目中使用了搜索功能来帮助用户更快更准确的找到想要的信息.本文将介绍如何实现用户输入自动提示的功能,就像谷歌百度搜索引擎一样,当用户输入关键字时,输入框下方会有提示,将与关键字相关的信息展现出来供用户选择,提升了用户体验. 本文将使用jquery ui的autocomplete插件,结合后端PHP,数据源通过PHP读取mysql数据表的数据. XHTML 首先将jquery库和相关ui插件,以及css导入. 复制代码 代码如下: <link rel="stylesheet&quo

html-js动态生成的div在ie9下显示正常而在ie8下显示错位

问题描述 js动态生成的div在ie9下显示正常而在ie8下显示错位 html代码如下: js代码如下: function logIn(){ var new_page=document.createElement("div");//创建遮蔽层div new_page.style.position="absolute"; new_page.style.top=0; new_page.style.left=0; new_page.style.width=document