Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2009, 00:08
Dr_VOLAND
 
Сообщений: n/a

defer
Господа вот код, в нем хочет работать innerHTML, что не так? =(

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript">
window.onload = function() {
	document.getElementById('clicker').onclick = swop;
}
function swop() 
{
/*var sScript="<SCRIPT DEFER>";
sScript = sScript + " document.write("Hello World!"); ";
sScript = sScript + "</SCRIPT" + ">";*/

this.innerHTML = '<script type="text/javascript" defer="true"><!--document.write("Hello World!");\/\/--><\/script>';
}
</script>
<style type="text/css">
div {
padding:20px;
margin:20px;
border:1px solid #000;
}
</style>
</head>

<body>
<div id="clicker">click me to change me</div>
</body>
</html>


Спасибо!

Последний раз редактировалось Андрей Параничев, 13.01.2009 в 17:28. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2009, 01:27
Интересующийся
Отправить личное сообщение для Ilya Посмотреть профиль Найти все сообщения от Ilya
 
Регистрация: 09.01.2009
Сообщений: 14

Dr_VOLAND,

Если убрать комментарии из сценария (<script type="text/javascript" defer="true"><!--document.write("Hello World!");\/\/--><\/script>), и перед этим сценарием, но после одинарной кавычки поставить любой символ ('1<script) (Сам не понимаю, для чего это нужно), то в IE срабатывает. В других браузерах не работает.

Я предполагаю, что этом может быть связано с атрибутом defer. Насколько я знаю, этот атрибут обязательно следует вставлять в <script>, если он создается через innerHTML. К тому же он поддерживается только в IE.

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script type="text/javascript">
window.onload = function() {
document.getElementById('clicker').onclick = swop;
}
function swop()
{
/*var sScript="<SCRIPT DEFER>";
sScript = sScript + " document.write("Hello World!"); ";
sScript = sScript + "</SCRIPT" + ">";*/

this.innerHTML = '1<script type="text/javascript" defer="true">document.write("Hello World!");\/\/<\/script>';
}
</script>
<style type="text/css">
div {
padding:20px;
margin:20px;
border:1px solid #000;
}
</style>
</head>

<body>
<div id="clicker">click me to change me</div>
</body>
</html>

Последний раз редактировалось Ilya, 12.01.2009 в 01:45.
Ответить с цитированием
  #3 (permalink)  
Старый 13.01.2009, 17:58
Новичок на форуме
Отправить личное сообщение для War Hammer Посмотреть профиль Найти все сообщения от War Hammer
 
Регистрация: 13.01.2009
Сообщений: 7

попробуй это не знаю будет пахать или нет:

var o = window.document.createElement("SCRIPT");
o.text = "document.write('Hello World!');";
window.document.body.insertBefore(o);
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск