2011-09-14 4 views
2

JavaScriptを使用してFlashムービーオブジェクトを非表示にしているhtmlページを作成しました。タブから抜け出るまではすべて正常に動作します。エラーが発生すると、ブラウザ全体がエラーテキストボックスでなくクラッシュします。誰も助けることができますか?おかげas3 ExternalInterface.callによりブラウザクラッシュが発生する

フラッシュコード

if(ExternalInterface.available) 
ExternalInterface.call('hideTimeline'); 

Javascriptコード

function showTimelineFirstPlay() 
{ 
var timeline = document.createElement('span'); 
timeline.id = "timeLineer" 
// WIDTH=1217 HEIGHT=170 

//document.write(document.getElementById('topper').offsetHeight); 
var fHeight = document.getElementById('topper').offsetHeight; 
var fWidth = document.getElementById('topper').offsetWidth - 10; 
var hHeight = fHeight + 100; 
var hWidth = fWidth - 150; 

timeline.innerHTML = "<OBJECT id='fTrans' allowScriptAccess='sameDomain' style = 'solid;border-color:#960000; border-width:3px;position:absolute; top:95; left:15;' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' WIDTH="+fWidth+" HEIGHT="+fHeight+"> <PARAM NAME=movie VALUE='FirstPlay.swf'> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#ffffff> </object><span onclick='hideTimeline()'style='color:#0098db;position:absolute; left:"+hWidth+"; top:"+hHeight+"'>- Hide Timeline</sapn>"; 

topper.appendChild(timeline); 
} 

function hideTimeline() 
{ 
topper.removeChild(document.getElementById('timeLineer')); 
} 

window.onload = function() 
{ 
showTimelineFirstPlay(); 
} 
+1

をREMOVECHILDますhideTimelineでタイマーを起動してみてください、あなたは再起動してみましたか?スクリプトは決してブラウザをクラッシュさせるべきではありません。問題が何であるかをコードに誤りがある場合は –

+0

それだけですが、問題の内容が正確ではありません。私は、actionscriptがExternalInterface.callを使ってJavascriptメソッドを呼び出すときに何らかのエラーが発生することを知っています。その呼び出しが行われた後にタブを閉じると、ブラウザがクラッシュしますが、エラーメッセージは表示されません。 –

+0

hideTimelineを呼び出し、SWFが応答を待っているときにSWFを削除するため、プラグインがクラッシュする可能性があります。 hideTimelineでtopper.removeChild(document.getElementById( 'timeLineer'))となるタイマーを起動してみてください。 のように50ミリ秒後。 –

答えて

0

SWFが応答を待っているときにhideTimelineを呼び出して、SWFを削除しているため、クラッシュされる可能性がありますプラグイン。

50のような後
miliseconds.topper.removeChild(document.getElementById('timeLineer')); 
関連する問題