2014-11-03 23 views
1

一點背景知識動態加載swfobject的,如果HTML5功能不可用

我檢查三件事情,當我載入我的網頁,如果有的話,這些返回false(不支持),那麼我提供一個閃回回退。否則繼續。如果HTML5功能可用,我不想加載swfobject.js - 因爲這會浪費資源。

我所試圖做的是:

IF任何我檢查返回false特徵,動態在我的Flash後備加載。

我正在使用SWFObject嵌入我的閃存,每次我嘗試了我得到通常的swfobject沒有定義錯誤。

我已經嘗試了一些方法,這是我最新的:

var head = document.getElementsByTagName('head')[0]; 
var script = document.createElement('script'); 
script.setAttribute('type', 'text/javascript'); 
script.setAttribute('src', 'path/to/swfobject.js'); 
head.appendChild(script); 

將加載我的SWF JavaScript文件到頭部沒有問題,但是運行我的嵌入代碼在我的SWFObject加載抱怨swfobject是不是定義。

也許我是以錯誤的方式去做的? 諮詢將不勝感激,我得到我可能會下降完全錯誤的軌道上,我想實現這個

+1

也許你想要這樣的東西:http://stackoverflow.com/a/14521217/1037617 – Jimmery 2014-11-03 09:29:10

回答

1

回答中收到的意見的方式感覺,感謝Jimmery

爲了與任何人同樣的問題,要麼看到這LINK否則我會解釋一下答案細節:

答案的OP解釋jQuery的getScript加入()如何能成爲一個小馬車所以自定義實現一個更好的方法:

jQuery.loadScript = function(url, callback){ 
    jQuery.ajax({ 
     url: url, 
     dataType: 'script', 
     success: callback, 
     async: true 
    }); 
} 

然後調用它像這樣:

if(typeof swfobject === 'undefined'){ 
    $.loadScript('path/to/swf.js', function(){ 
     // code to execute when script has loaded 
     // This is where I call my function to give SWFObject something to embed 
    }); 
} 

如果你正在努力像我DO NOT投票這個答案了,因爲我只是解釋,請投了THIS ANSWER所以原作者得到應有的代表。