15.02.2013, 09:37
|
|
Новичок на форуме
|
|
Регистрация: 15.02.2013
Сообщений: 9
|
|
Подключение внешних скриптов к динамически создаваемому окну
Здравствуйте! Второй день голову ломаю, уверен, что ошибка в какой-то мелочи, которую не могу заметить.
Прошу вашей помощи.
Имеется календарик (tigracalendar), подключается из "tcal.js", в статике все работает, а как создаю динамическую страницу ничего не работает. Доходит до объявления скрипта и все дальше страничка не подгружается, стоит добавить алерт сразу после объявления источника калдендарика и все норм.
...
win = window.open("", "", "toolbar=0,width=800,height=450");
win.document.open();
win.document.writeln('<!DOCTYPE HTML>');
win.document.writeln('<html><head>');
win.document.writeln('<meta http-equiv="content-type" content="text/html; charset=windows-1251">');
win.document.writeln('<link rel="stylesheet" type="text/css" href="http://ххх/cgi-bin/src/u/tcal.css"/>');
win.document.writeln('<script type="text/javascript" src="http://ххх/cgi-bin/src/u/tcal.js"><\x2fscript>');
win.alert();
win.document.writeln('<title>Проверка отчета</title></head><body>');
...
Что я не замечаю? В tcal.js кавычки используются одинарные, мне казалось, что проблема с кавычками, или с тем, что нужно подождать, пока подгрузится скритп из источника.
Спасибо.
|
|
15.02.2013, 10:35
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Сообщение от damekkoneko
|
а как создаю динамическую страницу ничего не работает
|
Бивас, тест!
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
win = window.open("", "", "toolbar=0,width=800,height=450");
win.document.open();
win.document.writeln('<!DOCTYPE HTML'+'>');
win.document.writeln('<html><head'+'>');
win.document.writeln('<script src="http://code.jquery.com/jquery-latest.js"></script'+'>');
win.document.writeln('<title>Проверка отчета</title'+'>');
win.document.writeln('</head'+'>');
win.document.writeln('<body'+'>');
win.document.writeln('<button id="b" onclick="$(\'#b\').css(\'color\',\'red\')">Test</button'+'>');
win.document.writeln('</body'+'>');
</script>
</head>
<body>
</body>
</html>
Вроде работает...
|
|
15.02.2013, 10:53
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от damekkoneko
|
win.document.writeln('<!DOCTYPE HTML>');
win.document.writeln('<html><head>');
|
Так открытый документ уже содержит
<html>
<head></head>
<body></body>
</html>
И доктайп уже вписывать поздно.
ksa, разве нет?
|
|
15.02.2013, 11:38
|
|
Новичок на форуме
|
|
Регистрация: 15.02.2013
Сообщений: 9
|
|
Сообщение от danik.js
|
Так открытый документ уже содержит
<html>
<head></head>
<body></body>
</html>
И доктайп уже вписывать поздно.
|
Похоже на то. Но в башку-то надо как-то запихать
Последний раз редактировалось damekkoneko, 15.02.2013 в 11:42.
|
|
15.02.2013, 11:56
|
|
Новичок на форуме
|
|
Регистрация: 15.02.2013
Сообщений: 9
|
|
Техническая мысль прогресса меня подтолкнула проверить это в других браузерах (Изначально проверка в виндовой последней Опере ).
Хром отлично переваривает и все работает.
IE6 загибается и буксует - пишет загрузка данных с http://ххх/cgi-bin/src/u/tcal.css
Чего ж им не нравится?
Стоит к примеру ksa прикрутить вызов окна по кнопке, как сразу все не работает
Почему опера нелюбит, когда этот код помещен в функцию?
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
</head><body>
<script type="text/javascript">
function s(){
win = window.open("", "", "toolbar=0,width=800,height=450");
win.document.open();
win.document.writeln('<!DOCTYPE HTML'+'>');
win.document.writeln('<html><head'+'>');
win.document.writeln('<script src="http://code.jquery.com/jquery-latest.js"></script'+'>');
win.document.writeln('<title>Проверка отчета</title'+'>');
win.document.writeln('</head'+'>');
win.document.writeln('<body'+'>');
win.document.writeln('<button id="b" onclick="$(\'#b\').css(\'color\',\'red\')">Test</button'+'>');
win.document.writeln('</body'+'>');
};
</script>
<input type="button" onclick= s()>
</body>
</html>
Последний раз редактировалось damekkoneko, 15.02.2013 в 12:19.
Причина: ...подумал
|
|
15.02.2013, 12:35
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Сообщение от damekkoneko
|
Но в башку-то надо как-то запихать
|
var doc = win.document,
script = doc.createElement('script');
script.src = 'http://code.jquery.com/jquery-latest.js';
doc.body.appendChild(script);
doc.title = 'Проверка отчета';
doc.body.innerHTML = '<button id="b" onclick="$(\'#b\').css(\'color\',\'red\')">Test</button'+'>';
Может так?
|
|
15.02.2013, 12:48
|
|
Новичок на форуме
|
|
Регистрация: 15.02.2013
Сообщений: 9
|
|
Сообщение от danik.js
|
var doc = win.document,
script = doc.createElement('script');
script.src = 'http://code.jquery.com/jquery-latest.js';
doc.body.appendChild(script);
doc.title = 'Проверка отчета';
doc.body.innerHTML = '<button id="b" onclick="$(\'#b\').css(\'color\',\'red\')">Test</button'+'>';
Может так?
|
Да, так правильнее.
Но проблема остается все равно опера не прожевывает
|
|
15.02.2013, 13:43
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Сообщение от danik.js
|
разве нет?
|
Я лишь потестил пример автора...
|
|
27.02.2013, 09:46
|
|
Новичок на форуме
|
|
Регистрация: 15.02.2013
Сообщений: 9
|
|
В общем, я так этот вопрос и не решил. У меня мой пример в Опере работает только, если перед загрузкой странички новое окошко выдаст алерт, в Хроме все ок и без алерта.
|
|
27.02.2013, 17:35
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
<script type="text/javascript">
function MyOpen(str){
var msg = new String("");
msg = "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://javascript.ru/forum/clientscript/vbulletin_css/style-81884d78-00003.css\" /><title>Тest</title> <script src=\"http://code.jquery.com/jquery-latest.js\"><"+"/"+"script>"
msg+="<div class='panel' style='margin-top:45px;color:red;font-size:32px;'><center>"+str+"</center></div>"
msg+="<script>setTimeout(\"$('div').text('Меняем содержимое элемента с помощью jQuery,- Скрипты работают')\",2000);<"+"/"+"script>"
msg+="</body></html>";
popup = window.open("", "", "height=300, width=700, top=300, left=300, scrollbars=1")
popup.document.write(msg)
popup.document.close()
return false
}
</script>
<button onclick="MyOpen('Привет')">Жмём</button>
Последний раз редактировалось Deff, 27.02.2013 в 17:57.
|
|
|
|