DropDownList and div problem at Internet Exploer 6
בעידן בו יש כל כך הרבה דפדפנים, וצריך לתמוך בכולם- העבודה נעשית ארוכה יותר ולא כיפית.
כך גם במקרה הבא:
זוכרים שהיה אי פעם דפדפן IE 6, כן.. גם אני מנסה לשכוח, אבל מה לעשות צריך לתמוך בו עדין.
ישנה בעיה ידועה שDrop Down List (תג select ב Html) באקפלורר 6 תמיד עליון.
לדוגמה, אם אני רציתי ליצור תפריט ומתחתיו ישנו את אותו Drop Down זה מה שקיבלתי:
הפיתרון לבעיה זאת הוא קל. יוצרים ifram (רצויי עם source של דף ריק) באותו גודל של אותו div וifram יהיה מעל ה .Drop Down
ניקח את אותו ifram במקום כלשהו בדף, וכאשר קוראים לאותו div להופיע, מבצעים את הפונקציה הבאה בjavascript. הפונקציה מקבלת את הID של הdiv והID של הifram).
ואז מקבלים את התוצאה הנחמדה הבאה:
נחמד.. לא?
שנה אזרחית קלילה :)
כך גם במקרה הבא:
זוכרים שהיה אי פעם דפדפן IE 6, כן.. גם אני מנסה לשכוח, אבל מה לעשות צריך לתמוך בו עדין.
ישנה בעיה ידועה שDrop Down List (תג select ב Html) באקפלורר 6 תמיד עליון.
לדוגמה, אם אני רציתי ליצור תפריט ומתחתיו ישנו את אותו Drop Down זה מה שקיבלתי:
הפיתרון לבעיה זאת הוא קל. יוצרים ifram (רצויי עם source של דף ריק) באותו גודל של אותו div וifram יהיה מעל ה .Drop Down
<IFRAME id="iframeFixDiv" style="VISIBILITY:hidden; POSITION:absolute;" src="/_LAYOUTS/Test01/Blank.htm" frameBorder="0" scrolling="no">
</IFRAME>
ניקח את אותו ifram במקום כלשהו בדף, וכאשר קוראים לאותו div להופיע, מבצעים את הפונקציה הבאה בjavascript. הפונקציה מקבלת את הID של הdiv והID של הifram).
// Fix IE6 div Display before Drop Down with ifram
function FixIe6DivDisplayDropDown(divID, iframeID)
{
var ieversion = 0;
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
var ieversion = 0;
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
ieversion = new Number(RegExp.$1);
if (navigator.appName == "Microsoft Internet Explorer" &&
ieversion < 7)
{
var myDiv = document.getElementById(divID);
var myDiv = document.getElementById(divID);
myDiv.style.display = 'block';
var MyIframe =
document.getElementById(iframeID);
document.getElementById(iframeID);
MyIframe.style.visibility = 'visible';
MyIframe.style.display = 'block';
MyIframe.style.width = myDiv.offsetWidth;
MyIframe.style.height = myDiv.offsetHeight;
MyIframe.style.left = myDiv.offsetLeft;
MyIframe.style.top = myDiv.offsetTop;
}
}
ואז מקבלים את התוצאה הנחמדה הבאה:
נחמד.. לא?
שנה אזרחית קלילה :)
Comments
Post a Comment