Я пытаюсь добавить новое слайд-шоу на свой сайт. В слайд-шоу есть все, что мне нужно, кроме опции «height = «80%»», т.е. я хочу, чтобы слайд-шоу масштабировалось с помощью браузера, потому что новый дизайн сайта будет похож на приложение для Android; полное погружение.
Поскольку само слайд-шоу не имеет этой опции, я создаю код javascript, который будет проверять размер окна документа/браузера каждые 2 секунды и перезагружать/изменять размер самого слайд-шоу, чтобы оно всегда соответствовало размеру экрана. Но проблема в том, что javascript запускается только один раз, загружается и не вызывает «setTimeout» после того, как я вставлю в скрипт определенную строку кода.
Итак, проблема в том, что setTimeout на самом деле перестает работать, поэтому он работал раньше, после того как я включил эту строку кода:
var thescript = document.createElement("script");
thescript.type = "text/javascript";
thescript.innerHTML="jQuery.flashgallery('gallery/ArtGallery.swf', 'gallery/gallery.xml', {width: '100%', height: '"+calcheight+"px', background: '#000000'});";
document.getElementById('galleryid').appendChild(thescript);
Полная функция проверки javascript находится здесь:
function getDocSpecs() {
clearTimeout(t);
var D = Math.max(
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
Math.max(document.body.clientHeight, document.documentElement.clientHeight));
var Le = Math.max(
Math.max(document.body.scrollWidth, document.documentElement.scrollWidth),
Math.max(document.body.offsetWidth, document.documentElement.offsetWidth),
Math.max(document.body.clientWidth, document.documentElement.clientWidth));
calcheight = (0.80 * D);
alert(preheight + "_" + prewidth + "_" + D + "_" + Le + "_");
if (preheight != D || prewidth != Le) {
var thescript = document.createElement("script");
thescript.type = "text/javascript";
thescript.innerHTML = "jQuery.flashgallery('gallery/ArtGallery.swf', 'gallery/gallery.xml', {width: '100%', height: '" + calcheight + "px', background: '#000000'});";
document.getElementById('galleryid').appendChild(thescript);
}
preheight = D;
prewidth = Le;
t = setTimeout('getDocSpecs()', 2000);
}
Эти двое, кажется, не любят друг друга:
var thescript = document.createElement("script");
thescript.type = "text/javascript";
thescript.innerHTML="jQuery.flashgallery('gallery/ArtGallery.swf', 'gallery/gallery.xml', {width: '100%', height: '"+calcheight+"px', background: '#000000'});";
document.getElementById('galleryid').appendChild(thescript);
а также
t = setTimeout('getDocSpecs()', 2000);
Я пытался обмануть его, сначала загрузив слайд-шоу, а затем вызвав функцию, добавив текст, активируемый кликом, вызвав несколько функций и т. д.
<script>
, добавлять к нему код и куда-то добавлять? Просто выполните код. - person Ian   schedule 30.04.2013window.setTimeout
, а передаете саму функцию;window.setTimeout(getDocSpecs, 2000);
? - person Paul S.   schedule 30.04.2013jQuery.flashgallery('gallery/ArtGallery.swf', 'gallery/gallery.xml', {width: '100%', height: calcheight+'px', background: '#000000'});
? - person Kevin B   schedule 30.04.2013