我是一个JavaScript的新手,并且无法让我的脚本在Safari中工作。我做了大量的谷歌搜索找到解决方案,但没有找到任何工作。JavaScript只适用于Safari浏览器
我有一个使用JavaScript来加载SWF和从两个单独的阵列的字幕的HTML页。有一个下一个按钮,点击后会加载另一个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>
您是否获得任何JavaScript错误或警告? – drudge 2011-03-15 21:07:33
没有错误或警告,它只是不加载新的瑞士法郎。 – rlane423 2011-03-16 13:01:19