Ответ 1
if (document.createStyleSheet)
{
document.createStyleSheet("style.css");
}
else
{
$("head")
.append('<link rel="stylesheet" type="text/css" href="style.css" />');
}
Привет, ребята,
Я просто пытался создать плагин, и мне было нужно, чтобы он был удобным для пользователя, поэтому я хочу тег append
тега <link/>
на странице head
страницы пользователей по мере загрузки моего плагина. Он отлично работает со всеми другими браузерами (не уверен в IE9, IE7 и IE6), но не работает для IE8!
Я не ошибаюсь в своем плагине, поэтому я просто создал образец страницы и столкнулся с подобной проблемой! Вот моя тестовая страница HTML + код jQuery ------
<html>
<head>
<script src="../jquery-1.6.min.js"></script>
<script>
$(document).ready(function () {
$(document.head).append('<link rel="stylesheet" type="text/css" href="style.css" />');
});
</script>
</head>
<body>
<h1>Text!</h1>
</body>
</html>
И вот мой код CSS -----
body {
background:#ddd;
}
h1 {
color: #789;
}
Так может ли кто-нибудь сказать мне, где я ошибаюсь, или это проблема жизни?
СПАСИБО В РАСШИРЕНИИ
После просмотра первого комментария и отправки ссылки, я просто создал этот образец кода и нашел что-то потрясающее! Смотрите это ~~~
<html>
<head>
<script src="../jquery-1.6.min.js"></script>
<script>
$(document).ready(function () {
if (document.getElementsByTagName('head')[0] === document.head) {
$("head").append('<link rel="stylesheet" type="text/css" href="style.css" />');
}else {
alert('This doesn\'t supports head appending!');
}
});
</script>
</head>
<body>
<h1>Text!</h1>
</body>
</html>
При выполнении этой страницы с моим браузером IE8 я получаю сообщение о том, что
This doesn't supports head appending!
Ну, я не ошибаюсь в своем браузере или это ошибка IE8?
if (document.createStyleSheet)
{
document.createStyleSheet("style.css");
}
else
{
$("head")
.append('<link rel="stylesheet" type="text/css" href="style.css" />');
}
Вы используете document.head
для доступа к голове. document.head
является лишь недавним дополнением к DOM, как часть HTML5. Таким образом, он не поддерживается повсеместно.
Если вы хотите его использовать, вы должны добавить шайбу перед ее вызовом:
document.head = document.head || document.getElementsByTagName('head')[0];
В противном случае вы можете просто добавить непосредственно к тегу <head>
(который рекомендуется, так как эта половина точки использования синтаксического сахара jQuery):
$("head").append(...);