Я новичок в javascript, и у меня возникли проблемы с тем, чтобы мой скрипт работал в Safari. Я сделал множество поисков в Google, чтобы найти решение, но не нашел ничего, что сработало.
У меня есть HTML-страница, которая использует javascript для загрузки swf и подписи из двух отдельных массивов. Существует следующая кнопка, которая загрузит другой SWF и новую подпись при нажатии. Он отлично работает в IE и Firefox, но в Safari новый SWF не отображается. В отладчике Safari отображается правильное имя нового SWF-файла, но на экране отображается исходный SWF-файл. Единственный способ, которым я заставил его работать, - это если у меня есть предупреждение после кода. Я попытался настроить порядок событий в своей функции, но это ничего не решило.
Есть идеи? (Прошу прощения, если я предоставил слишком много кода, я просто хочу дать вам полную картину.)
Javascript (находится в шапке):
var swfFrame=new Array();
swfFrame[0]='frame_01.swf';
swfFrame[1]='frame_02.swf';
swfFrame[2]='frame_03.swf';
var paragraphTxt=new Array();
paragraphTxt[0]='caption 1';
paragraphTxt[1]='caption 2';
paragraphTxt[2]='caption 3';
function nextFrame(x){
i = i+x;
if(i>=swfFrame.length){
i=i-1;
window.open('quiz.html');
}else{
document.getElementById("framenum").innerHTML = (i+1) + " of " + swfFrame.length;
document.getElementById("paragraph").innerHTML = paragraphTxt[i];
// IE
document.getElementById("flashPlayer").movie = "swf/" + swfFrame[i];
// FIREFOX et al
<!--[if !IE]>-->
document.getElementById("flashPlayer").data = "swf/" + swfFrame[i];
<!--[endif}-->
// ALERT (doesn't work in Safari if alert is off)
alert(document.getElementById("flashPlayer").data);
}
if(i>0){
document.getElementById("button_Bck").style.visibility = "visible";
}else{
hideBack();
}
}
function hideBack(){
document.getElementById("button_Bck").style.visibility = "hidden";
}
Код кнопки, используемой для перехода к следующему SWF-файлу:
<a href="javascript://" onclick="nextFrame(1)"><div id="button_Nxt"><div id="buttonText">Next</div></div></a>