Code JavaScript แยก browser เพื่อเรียก css file แก้ปัญหาการแสดงผล IE, Firefox

เริ่มโดย bunjerd, 06 พฤษภาคม 2009, 11:07:32

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

bunjerd

ผมแก้ปัญหาการแสดงผลระหว่าง IE, Firefox อยู่หลายวัน เลยเอาcode มาฝากน่าจะเป็นประโยชน์นะครับ

<SCRIPT LANGUAGE = "JavaScript">
<!--
var browser     = '';
var version     = '';
var entrance    = '';
var cond        = '';
// BROWSER?
if (browser == '')
{
   if (navigator.appName.indexOf('Microsoft') != -1)
      browser = 'IE'
   else if (navigator.appName.indexOf('Netscape') != -1)
      browser = 'Netscape'
   else
      browser = 'IE';
}
if (version == '')
{
   version= navigator.appVersion;
   paren = version.indexOf('(');
   whole_version = navigator.appVersion.substring(0,paren-1);
   version = parseInt(whole_version);
}

//alert('browser:'+browser+'  || version:'+version);

if (browser == 'IE' && version >= 4)//IE
{
   document.write('<'+'link rel="stylesheet" href="css/DeepMarineWhey_ie.css" />');
}
if (browser == 'Netscape' && version >= 2.02)//Firefox
{
   document.write('<'+'link rel="stylesheet" href="css/DeepMarineWhey_ff.css" />');
}
// -->
</SCRIPT>

ดูข้อมูลเพิ่มเติม

http://www.technorealm.co.uk/scripts/browserdetectcss.html

http://virtuelvis.com/archives/2004/02/css-ie-only

http://www.nealgrosskopf.com/tech/thread.asp?pid=20

8)
[direct=http://bjthailand.info/]ลดน้ำหนัก ลดความอ้วน[/direct]

TAXZe

โอ้... ขอบคุงครับๆ

ถ้ามีปัญหา IE FF จะเอามาใช้ดู

:P
[direct=https://www.taxze.com/ups-review/]รีวิว ups[/direct][direct=https://www.taxze.com/ups-review/]ups ยี่ห้อไหนดี[/direct][direct=https://twitter.com/taxze][/direct][direct=https://www.instagram.com/taxze][/direct][direct=https://rrbg.blogspot.com/][/direct]


g-ji

โค้ดมันใช้ ระหว่าง IE กับ Netcape นิ  ???

แล้วมันต่างกับ condition tag ตรงไหนหว่า

<![if lt IE x]>

<![endif]>

ball6847

แบบ jquery


<script src="/shared/jquery.pack.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
var cssfile = '/css/default.css';
if (jQuery.browser['msie']) {
switch (parseInt(jQuery.browser['version'])) {
case 6:
cssfile = '/css/ie6.css';
break;
case 7:
cssfile = '/css/ie7.css';
break;
}
}
if (jQuery.browser['mozilla'])
cssfile = '/css/firefox.css';
if (jQuery.browser['safari'])
cssfile = '/css/safari.css';
if (jQuery.browser['opera'])
cssfile = '/css/opera.css';
document.write('<link rel="stylesheet" type="text/css" href="'+cssfile+'" />');
-->
</script>


เอาเด่ะ เปลี่ยนตาม browser ได้หมดทุกรุ่นทุกยี่ห้อเลย 555+
แต่เอาเข้าจริงคงไม่เวอร์ขนาดนี้  ;D

ข้อเสียคือ ถ้า javascript disabled ก็จบเห่  :-X

จริงๆ ถ้าทำความเข้าใจ browser แต่ละตัว อาจจะไม่ต้องใช้ พวกนี้ก็ได้

แต่ไม่ค่อยมีใครอยากเสียเวลาทดสอบหลายๆตัวหรอก ยกเว้นผม เพราะว่างจัด  คนที่ขี้เกียจทดสอบเลยพยายามหาทางจัดการกับ browser แยกเป็นตัวๆ

แต่ถ้าเข้าใจการอ่าน css ของ browser แต่ละอันแล้ว เค้าจะ reset ค่าที่ชอบมีปัญหา cross browser ให้หมดโดยการกำหนด property ใส่ * ซะเลย ซึ่งถ้าไม่พิลึกพิลั่้นมาก แค่ reset ก็น่าจะพอแล้วนะ
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

g-ji

จี้มี
IE 6 7 8
Safari
Firefox
Crome กับ Opera ไม่ต้อง เพราะว่ามันอ่านเหมือน Safari ...

ไม่เห็นต้องเขียน hack เลยนิ หุหุ :-[ (มีแต่ CSS Reset)

ที่เหลือก็ Calculator Magic  :'(
ทุกอย่างเป็น % หมด ยกเว้น border ที่มันกำหนด % แล้วไม่สวย ถ้าขยายจอ เส้นก็ขยายตามสิ

เอาแค่แสดงผลเหมือนกันประมาณ 95% ก็ใช้ได้แล้ว

แต่ไม่เคยเช็กกับ IE 6 7 เลยว่าเว็บมันแสดงผลดีหรือเปล่า แต่ถ้ามันเละ คงมีคนบอกแล้วแหละ