2011-06-21 14 views
12

Czy znany jest problem z IE (7 i 8), w którym funkcja jquery .load() nie działa poprawnie? Mój CSS nie jest ładowany na stronę. Tu jest mój kodu:Problem z jQuery CSS i .load() w IE

Jest to plik, który jest załadowany (show_profile.php):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<link rel="stylesheet" script="text/css" href="profile.css" /> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<div id="tabs"><div id="cd" class="tab_active">Contact Details</div> 
</div> 
</body> 
</html> 

Jest to kod dla profile.css

#tabs { 
color:white; 
font-family:Verdana; 
font-size:14px; 
} 

#cd{ 
position:absolute; 
left:0px; 
top:0px; 
background-color:#3172A6; 
} 
.tab { 
position:absolute; 
top:0px; 
} 
.tab_active { 
position:absolute; 
top:0px; 
} 

Przy oglądaniu show_profile pliku .php niezależnie, wszystko w tym CSS jest w porządku, ale po prostu nie będzie pracować, gdy używam .load()

Proszę o pomoc :(

+1

Do czego wkładasz to urządzenie? Istniejący element? Może powinieneś użyć 'load ('show_profile.php body')', a następnie załaduj CSS osobno. – alex

+0

Dzięki za repsonding alex. load ("show_profile.php body") nie wydaje się teraz niczego ładować. – Anant

+0

@alex i rzecz jest, mój kod działa idealnie z Google Chrome i firefox – Anant

Odpowiedz

6

css pochodzi z nagłówka głównego dokumentu, a nie z tego, co ładujesz. Można użyć wbudowanej stylizacji na ładowanej stronie za pomocą polecenia load (0 lub określić styl w niektórych css (lub używając znaczników stylu) w dokumencie, który je ładuje:

+0

dzięki za odpowiedź. wbudowana stylizacja działa, ale nawet jeśli przeniesię zawartość pliku profile.css do części nagłówkowej pliku, do którego ładowany jest program show_profile.php, nie ma to żadnego wpływu: | – Anant

+0

@AR i mój kod działa doskonale z innymi przeglądarkami, więc w jaki sposób obejść to z IE? Dzięki – Anant

+0

Spójrz tutaj http://stackoverflow.com/questions/5186638/how-to-asynchronously-load-css-using-jquery - może dołączanie linku css rzeczywiście będzie latać, nie jestem pewien. Spójrz również na drugi anser tutaj: http://stackoverflow.com/questions/805384/how-to-apply-inline-and-or-external-css-loaded-dynamicznie-z-- tekstem Używam wbudowanej stylizacji dla stron ładowane za pomocą (load) i nie mam dla nich żadnych nagłówków, treści lub znaczników html, tylko divy i inne. –

2

Podana odpowiedź jest poprawna w całości. Problem polega na tym, że masz stronę (nazywającą ją A.php), która ładuje tę stronę (B.php), a wybrany arkusz stylów jest wymieniony tylko w B.php. Działa to w innych przeglądarkach, ponieważ są one trochę bardziej .. pobłażliwe na co pozwalają one w DOM IE jest bardzo surowe o tym, co robi i nie robi z tego odpowiedź jest włączenie <link rel="stylesheet" script="text/css" href="profile.css" /> w a.php

1

Element link nie posiada atrybut script - powinno być type="text/css".